Saya cukup baru dalam skrip Bash. Saya memiliki "skrip test", yang saya gunakan sebagai dasar untuk skrip yang lebih maju / berguna:
#!/bin/bash
files=$1
for a in $files
do
echo "$a"
done
Ketika saya memanggil ini tanpa tanda kutip, itu hanya mengambil satu file di direktori:
testscript *.txt
Tetapi ketika saya menyebutnya dengan tanda kutip, ia bekerja dengan benar dan memilih semua file teks:
testscript '*.txt'
Apa yang terjadi disini?
for a in "$@"; do
(ataufor a; do
) dalam skrip Anda, sehingga meninggalkan globbing ke kulit terluar, bukan untuk meninggalkan tanda kutip.