Ich bin ziemlich neu in Bash-Scripting. Ich habe ein "Testskript", das ich als Grundlage für ein erweitertes / nützliches Skript verwendet habe:
#!/bin/bash
files=$1
for a in $files
do
echo "$a"
done
Wenn ich dies ohne Anführungszeichen aufrufe, nimmt es nur eine Datei in einem Verzeichnis auf:
testscript *.txt
Aber wenn ich es mit Anführungszeichen aufrufe, funktioniert es korrekt und wählt alle Textdateien aus:
testscript '*.txt'
Was geht hier vor sich?
for a in "$@"; do
(oderfor a; do
) in Ihrem Skript, so dass das Globbing der äußeren Shell überlassen wird, und nicht die Anführungszeichen.