Я довольно новичок в скриптах Bash. У меня есть «тестовый скрипт», который я использовал в качестве основы для более продвинутого / полезного скрипта:
#!/bin/bash
files=$1
for a in $files
do
echo "$a"
done
Когда я вызываю это без кавычек, он просто берет один файл в каталоге:
testscript *.txt
Но когда я вызываю его с кавычками, он работает правильно и выбирает все текстовые файлы:
testscript '*.txt'
Что здесь происходит?
for a in "$@"; do
(илиfor a; do
) в вашем скрипте, таким образом оставляя глобализацию на внешнюю оболочку, чтобы не пропустить кавычки.