5

私は bash スクリプト作成者ではないので、これは間違いなく非常に単純な質問です。

エラーをスローするbashスクリプトがあります。次のようになります。

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

エラーは、中括弧に関連する 2 行目にあります。中括弧はここにあるべきではないようです...その場合、2行目はどのようになりますか?

スクリプトは、/root/list.txt から各行を読み取り、これを使用して何かを行うことになっています (この例では実際のコマンドを削除しました)。

ありがとう!

4

4 に答える 4

14

おそらく

for i in $(cat /root/list.txt)
于 2012-04-09T04:29:55.720 に答える
12

行を読み取るために for ループを使用しないでください。代わりに while read ループを使用してください。

#!/bin/bash
while read -r i; do
  doSomething
done < /root/list.txt
于 2012-04-09T04:32:21.403 に答える
1

試す

#!/bin/bash
for i in `cat /root/list.txt`
do
    doSomething
done
于 2012-04-09T05:14:48.990 に答える
-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

注:行は可変です

于 2012-04-09T05:12:00.460 に答える