Kullanım while readdöngüsü:
: > another_file ## Truncate file.
while IFS= read -r LINE; do
command --option "$LINE" >> another_file
done < file
Başka bir çıktıyı bloğa göre yönlendirmektir:
while IFS= read -r LINE; do
command --option "$LINE"
done < file > another_file
Sonuncusu dosyayı açmaktır:
exec 4> another_file
while IFS= read -r LINE; do
command --option "$LINE" >&4
echo xyz ## Another optional command that sends output to stdout.
done < file
Komutların bir giriş okur, komutlar bunu yemez böylece girişi için başka fd kullanmak iyi bir fikir olacağını (varsayarak burada ksh, zshya bashyönelik -u 3kullanımı, <&3yerine portably):
while IFS= read -ru 3 LINE; do
...
done 3< file
Son olarak, argümanları kabul etmek için şunları yapabilirsiniz:
#!/bin/bash
FILE=$1
ANOTHER_FILE=$2
exec 4> "$ANOTHER_FILE"
while IFS= read -ru 3 LINE; do
command --option "$LINE" >&4
done 3< "$FILE"
Hangisi olarak çalıştırabilir:
bash script.sh file another_file
Ekstra fikir İle bash, kullanın readarray:
readarray -t LINES < "$FILE"
for LINE in "${LINES[@]}"; do
...
done
Not: IFS=Satır değerlerinin baştaki ve sondaki boşlukların kesilmiş olması sakıncası yoksa ihmal edilebilir.
<file xargs -L 1 -I{} command --option {} other args