Shell脚本,如何逐行处理$ @

时间:2014-02-06 04:53:26

标签: sh

我正在阅读shell脚本中的文件输入:

sh script_name.sh< file.txt的

我知道$ @将包含文件的内容,我想遍历文件的每一行 因为文件在每一行都有新的条目。

我试着这样做:

for i in $@
do
   echo $i
done

但这似乎有用..注意我在示例中只是说回声$ i,但我想做一些其他操作。

我在访问$ line

中的元素时遇到问题

下面是代码

while read line
do
        for i in $line:
        do
                echo  $i
        done
done

我将其保存在test.sh文件中,并从test.txt文件中输入以下内容:

hello world
time good
world food

这就是我得到的输出:

hello
world:
time
good:
world
food:

正如您所看到的,在第二个字符串的末尾有一个额外的“:”

1 个答案:

答案 0 :(得分:1)

while read line
do
  echo $line
done

关于在空格上拆分每一行并处理每个字段的第二个要求,您需要:

while read line
do
        for i in $line
        do
                echo  $i
        done
done

你一定写过太多的Python ;-),因为你的例子中你不小心得到一个尾随:

你想:

for i in $line

而不是:

for i in $line: