Jestem całkiem nowy w skryptach Bash. Mam „skrypt testowy”, którego użyłem jako podstawę do bardziej zaawansowanego / przydatnego skryptu:
#!/bin/bash
files=$1
for a in $files
do
echo "$a"
done
Kiedy wywołuję to bez cudzysłowów, po prostu wyszukuje jeden plik w katalogu:
testscript *.txt
Ale kiedy nazywam to cudzysłowami, działa poprawnie i wybiera wszystkie pliki tekstowe:
testscript '*.txt'
Co tu się dzieje?
for a in "$@"; do
(lubfor a; do
) w skrypcie, pozostawiając globbing zewnętrznej powłoce, aby nie pomijać cudzysłowów.