Если у вас есть строка с разделителем, скажем, символом ,
, вы можете использовать IFS
просто так:
text=some,comma,separated,text
IFS="," read -ra ADDR <<< "$text"
for i in ${ADDR[@]}
do
echo $i
done
Каждое слово будет напечатано в новой строке. Но если вы возьмете результат команды, такой как ls
, а затем попытаетесь разделить его на \n
, вы не получите тот же результат:
results=$(ls -la)
IFS="\n" read -ra ADDR <<< "$results"
for i in ${ADDR[@]}
do
echo $i
done
Он печатает только 2 строки, и они даже не являются записями файла. Это
total
36
Первая строка вывода команды ls
.
Может кто-нибудь оказать небольшую помощь?
Если это не правильный путь, как это?