【发布时间】:2020-03-12 10:10:12
【问题描述】:
谁能帮我理解下面的代码
我正在脚本本身的第二行将 IFS 重置为换行符。该值由 out for command 读取。在内部命令中,我将 IFS 值重置为:
1) 在外部循环的第一次迭代后,IFS 值如何再次重置为新行,因为外部 for 循环从第 3 行开始,我在第 2 行为 IFS 分配换行符。
2) 当我在外循环和内循环中执行 echo $IFS 时,它会显示为空白。知道为什么。
谁能解释一下这是怎么工作的
test.txt:
cat test.txt
oracle:dba
network:admin
system:engineer
test.sh:
cat test.sh
#!/bin/bash
# changing the IFS value
IFSOLD=$IFS
IFS=$'\n'
for entry in $(cat test.txt)
do
echo "Values in $entry "
IFS=:
for value in $entry
do
echo " $value"
done
done
sh test.sh
Values in oracle:dba
oracle
dba
Values in network:admin
network
admin
Values in system:engineer
system
engineer
【问题讨论】: