Eu sou bastante novo no script Bash. Eu tenho um "testingcript", que usei como base para um script mais avançado / útil:
#!/bin/bash
files=$1
for a in $files
do
echo "$a"
done
Quando eu chamo isso sem aspas, apenas pega um arquivo em um diretório:
testscript *.txt
Mas quando eu o chamo com aspas, ele funciona corretamente e seleciona todos os arquivos de texto:
testscript '*.txt'
O que está acontecendo aqui?
for a in "$@"; do
(oufor a; do
) em seu script, deixando o globbing para o shell externo, para não deixar de fora as aspas.