2

2 つの文字列を while ループに渡そうとしていますが、構文を忘れてしまいました。助けてください。これは私がしようとしているものです -

#!/bin/bash
while read line
do  
    echo "successful"
done < "var1" "var2" 
exit

ここで何か間違ったことをしていることはわかっています。以前は while ループに文字列を渡していましたが、構文を忘れていました。ここで私を助けてください。

気がついた -

#!/bin/bash
while read line
do
   echo "successful"
done < "file_containing_var1_and_var2"

しかし、whileループにファイルではなく文字列を渡したいのですが、助けていただければ幸いです。

4

4 に答える 4

6

<リダイレクト演算子はファイルでのみ機能します。あなたの要件のためにfor loop

#!/bin/bash


for x in "var1" "var2"
do
   echo $x
done
于 2013-06-23T06:30:12.123 に答える
4

文字列をループに渡すには、 herestring <<<表記whileを使用する必要があります。

$ while read line; do 
    echo "$line"
done <<< "This is my test line"
This is my test line
于 2013-06-23T06:39:54.713 に答える
2
printf "%s\n" "var1" "var2" |
while read line
do  
    echo "successful: $line"
done

このprintfコマンドは、各引数を 1 行に 1 つずつエコーします。

于 2013-06-23T06:37:33.907 に答える
1

while ループにパイプできます。

#!/bin/bash
echo "var1" "var2" | while read line
do
    echo "successful: $line"
    set "$line"
    echo "v1: $1 v2: $2"
done

出力:

successful: var1 var2
v1: var1 v2: var2
于 2013-06-23T06:33:04.443 に答える