我有像
这样的bourne shell脚本#!/bin/sh
for i in $(cat /etc/hosts)
do
echo $i
done
当我运行这个脚本时/ etc / hosts文件中的每个单词都打印成不同的行,我的意思是如果文件的行是
127.0.0.1 localhost
10.0.0.1 fenasi
输出喜欢
127.0.0.1
localhost
10.0.0.1
fenasi
有没有办法逐行读取文件并像原版一样打印出来。我还需要这个解决方案来处理命令行输入
谢谢和问候
答案 0 :(得分:0)
问题可能是IFS(输入字段分隔符)变量包含空格作为分隔符(或未设置,这相当于相同的东西。)
以下内容更接近您的要求:
#!/bin/sh
IFS="
"
for i in $(cat /etc/hosts)
do
echo $i
done
这里,我们只使用换行作为字段分隔符,因此每行都将被视为一个字段。