繁体   English   中英

Bash - 我在猫里?

[英]Bash - for i in cat?

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

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

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

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

该脚本应该从 /root/list.txt 中读取每一行,然后用它做一些事情(我删除了这个例子的实际命令。)

谢谢!

大概

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

您不应该使用 for 循环来读取行。 请改用 while read 循环。

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

尝试

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

您可以使用以下命令调试 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

注意:行是可变的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM