Co jest nie tak z następującym kodem?
name='$filename | cut -f1 -d'.''
Tak jak jest, otrzymuję dosłowny ciąg $filename | cut -f1 -d'.'
, ale jeśli usunę cudzysłowy, nic nie otrzymam. Tymczasem piszę
"test.exe" | cut -f1 -d'.'
w powłoce daje mi wyjście chcę, test
. Wiem już, że $filename
została przypisana odpowiednia wartość. Chcę przypisać zmiennej nazwę pliku bez rozszerzenia.
basename "$filename" .exe
. W przeciwnym razie nazwy plików ze spacjami byłyby złą wiadomością.
basename $filename .exe
zrobiłby to samo. To przy założeniu, że zawsze wiesz, jakie rozszerzenie chcesz usunąć.