Bagaimana cara melewatkan $ line ke perintah cut dengan benar di loop ini?
while read line
do
login= $(cut -d : -f 1)
done < /etc/passwd
Saya tidak bisa melakukannya $(cut -d : -f 1 $line)
jadi apa cara yang benar?
Anda sebenarnya tidak memerlukan loop sementara jika niat Anda hanya untuk membuat daftar nama. Juga ada kesalahan sintaks setelah login=
, seharusnya tidak ada ruang.
cut -d: -f1 /etc/passwd | \
while read login;
do
echo username: $login;
done
atau ketika Anda mencoba:
while read line; do
login=$(echo $line | cut -d : -f 1)
echo $login
done < /etc/passwd
bahkan lebih baik:
db-getent passwd |cut -d: -f1 | xargs -L1 echo name:
getent
. Dalam contoh pertama Anda, kelanjutan garis tidak diperlukan setelah pipa.Biarkan
read
perintah bersama dengan shellIFS
variabel menguraikan baris untuk Anda:Untuk menjawab pertanyaan Anda, bash-string di sini akan bermanfaat:
sumber
Menggunakan gema :
sumber