我正在尝试将两个字符串传递给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循环,感谢任何帮助。
答案 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