43

で変数から読み取るにはどうすればよいwhile read lineですか?

例えば:

the_list=$(..code..)

while read line
do
        echo $line

done < $the_list

上記のコードを使用すると、エラーが発生します。

./copy.sh: line 25: $the_list: ambiguous redirect
4

4 に答える 4

70

あなたは書ける:

while IFS= read -r line
do
    echo "$line"
done <<< "$the_list"

Bash Reference Manualの §3.6.7「Here Strings」を参照してください。

(また、変数の内容をいじりすぎないように、自由に二重引用符を追加し、 に and を追加しまし-rた。)IFS=read

于 2012-10-29T13:22:59.427 に答える
27

変数を他に使用しない場合は、変数を使用しなくても構いません。

while read line ; do
    echo $line
done < <( ... code ... )
于 2012-10-29T13:32:53.240 に答える
24

You can just use

your_code | while read line;
do
    echo $line
done

if you don't mind the while loop executing in a subshell (any variables you modify won't be visible in the parent after the done).

于 2012-10-29T13:22:08.807 に答える
-3

スクリプト ファイルは Linux モードである必要があります。以前は dos モードでした。を使って変えました dos2unix filename

例えば:

dos2unix sshcopy.sh

今ではうまくいきます。

于 2013-06-25T23:18:27.227 に答える