Bash удаляет файл с двумя путями переменной, не работающими

У меня есть сценарий удара, содержащий этот код:

path=/apps/files/
ext=*.csv

rm -f $path$ext

Это не работает. Когда я установил,-o для повторения каждой команды я вижу это в выводе...

rm -f '*.csv'

Таким образом, это не получает путь, но я использую ту переменную пути всюду по сценарию, и это работает. Единственная разница была бы то, что я использую его с определенными именами файлов и с командами кроме комнаты. Так что-то как...

file=abc.csv
echo "some text" >> $path$file

... будет работать отлично.

Любая справка ценилась бы.

0
задан 20 September 2018 в 12:04

1 ответ

Не цитируя назначение

ext=*.csv

Вы установите ext на «*.csv'" only if there are NO .csv files in the current directory. If the current directory has *. Csv files ext`, чтобы получить их список.

]

Например, у меня есть 18 .csv файлов в моем домашнем каталоге, и ни одного в ~/bin.

walt@bat:~(0)$ cd ~/bin
walt@bat:~/bin(0)$ ext=*.csv
walt@bat:~/bin(0)$ echo $ext
*.csv
walt@bat:~/bin(0)$ cd
walt@bat:~(0)$ ext=*.csv
walt@bat:~(0)$ echo $ext
abook15.csv abook62.csv abook8.csv abook.csv accountactivity.csv Address book headers.csv addresses.csv allphones.csv assets.csv bbook.csv Jchq-2013-08-01-2014-07-31.csv Jchq.sort.csv PCF2016Aug04.csv portfolios.csv rickdisk.csv test.csv testmoo1.csv testmoo2.csv

Очевидно, «$path/$ext» будет выглядеть смешно.

[ 1114] Чтобы исключить эту интерполяцию имени файла, процитируйте свое назначение:

ext='*.csv'
0
ответ дан 27 October 2019 в 10:30

Другие вопросы по тегам:

Похожие вопросы: