Используйте * в скрипте bash
Есть несколько вопросов по этому поводу, но я не могу понять это правильно.
У меня есть скрипт, который назначает конкретный путь к переменной и добавляет имя файла с * в нем. Если в пути есть пробел, я не могу заставить скрипт выполнить правильную оценку.
Допустим, переменная установлена на что-то вроде:
var="/path/with/a space/in/it/"*.jpg
если я попробую что-то вроде
for i in $var
do
echo "$i"
done
скрипт вообще не найдет никаких файлов и просто выдаст значение var с * в нем, разделив его на два:
/path/with/a
space/in/it/"*.jpg
Так есть ли способ заставить его обрабатывать переменную как правильный путь?
Это была некоторая помощь, но она не совсем работает, как мне хотелось бы.
1 ответ
Так как это bash, вы можете сделать var
массив (см. этот вопрос Unix.SE о расширении глобусов):
shopt -s nullglob
var=("/path/with/a space/in/it/"*.jpg)
for i in "${var[@]}"
do
echo "$i"
done