将字符串传递给while循环

时间:2013-06-23 06:22:54

标签: shell

我正在尝试将两个字符串传递给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 个答案:

答案 0 :(得分:5)

<重定向运算符仅适用于文件。根据您的要求使用for loop

#!/bin/bash


for x in "var1" "var2"
do
   echo $x
done

答案 1 :(得分:4)

要将字符串传递到while循环,您需要使用herestring <<<表示法。

$ while read line; do 
    echo "$line"
done <<< "This is my test line"
This is my test line

答案 2 :(得分:2)

printf "%s\n" "var1" "var2" |
while read line
do  
    echo "successful: $line"
done

printf命令自行回显一行上的每个参数。

答案 3 :(得分: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