Sono abbastanza nuovo negli script di Bash. Ho un "testscript", che ho usato come base per uno script più avanzato / utile:
#!/bin/bash
files=$1
for a in $files
do
echo "$a"
done
Quando lo chiamo senza virgolette, prende solo un file in una directory:
testscript *.txt
Ma quando lo chiamo tra virgolette funziona correttamente e seleziona tutti i file di testo:
testscript '*.txt'
Cosa sta succedendo qui?
for a in "$@"; do
(ofor a; do
) nella tua sceneggiatura, lasciando così il trauma alla shell esterna, non tralasciare le virgolette.