В третьем примере на этой странице установка нулевого значения IFS
предотвращает разбиение слов, что приводит к тому, что этот код не работает.Вот этот код:
while IFS= read -r field1 field2 field3 ... fieldN
do
command1 on $field1
command2 on $field1 and $field3
..
....
commandN on $field1 ... $fieldN
done < "/path/to dir/file name with space"
Как написано, все слова в строке хранятся в field1
, а field2
и т. Д. Пусты.Измените строку на эту, и она будет работать правильно:
while read -r field1 field2 field3 ... fieldN