Bash - 我在猫吗?

时间:2012-04-09 04:28:33

标签: linux bash

我不是一个bash scriptor,所以这无疑是一个非常简单的问题。

我有一个bash脚本抛出错误。它看起来像这样:

#!/bin/bash
for i in (cat /root/list.txt)
do
        doSomething
done

错误在第二行,与花括号相关。所以似乎大括号不应该在这里......在这种情况下,第2行应该是什么样的?

该脚本应该读取/root/list.txt中的每一行,然后使用它来执行doSomething(我删除了此示例的实际命令。)

谢谢!

4 个答案:

答案 0 :(得分:11)

可能

for i in $(cat /root/list.txt)

答案 1 :(得分:10)

您不应该使用for循环来读取行。 Use a while read loop instead.

#!/bin/bash
while read -r i; do
  doSomething
done < /root/list.txt

答案 2 :(得分:1)

尝试

#!/bin/bash
for i in `cat /root/list.txt`
do
    doSomething
done

答案 3 :(得分:-1)

您可以使用以下命令调试bash脚本:

set -x

使用此:

for line in $(cat /etc/fstab)
do 
   echo $line ; sleep 1
done

或者这个:

while read line
do
    echo $line ; sleep 1
done < /etc/fstab

注意:行是可变的