Anda menggunakan jenis kutipan yang salah.
Anda perlu menggunakan tanda kutip belakang daripada tanda kutip tunggal untuk menjadikan argumen sebagai program yang berjalan dan menyalurkan konten ke forloop.
for tbl in `cat /tmp/tables`
do
echo "$tbl"
done
Juga untuk keterbacaan yang lebih baik (jika Anda menggunakan bash), Anda dapat menulisnya sebagai
for tbl in $(cat /tmp/tables)
do
echo "$tbl"
done
Jika harapan Anda adalah untuk mendapatkan setiap baris (For-loop di atas akan memberi Anda setiap kata), maka Anda mungkin lebih baik menggunakan xargs
, seperti ini
cat /tmp/tables | xargs -L1 echo
atau sebagai loop
cat /tmp/tables | while read line; do echo "$line"; done
Kutipan tunggal harus backticks:
for tbl in `cat /etc/tables`
Meskipun, ini tidak akan memberi Anda output/input per baris, tetapi per kata. Untuk memproses baris demi baris, Anda harus mencoba sesuatu seperti:
cat /etc/tables | while read line
echo $line
done
Apa perbedaan antara menginstal paket menggunakan pip vs. apt-get?
Sembunyikan input kata sandi di terminal