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 $filenamezostał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 .exezrobiłby to samo. To przy założeniu, że zawsze wiesz, jakie rozszerzenie chcesz usunąć.