我有一个#!/ bin / sh脚本,询问用户问题,例如输入您的年龄。 我需要另一个#!/ bin / sh脚本来启动第一个脚本并向其发送静态答案。 如何将答案从一个脚本发送到另一个脚本并回答问题。
感谢。
答案 0 :(得分:0)
让我们调用要求输入的脚本,userage.sh和调用脚本caller.sh
如果你想让userage.sh在没有用户提示的情况下接受输入,请重做它,这样如果没有参数,则取用户输入,如果有参数,则将这些参数作为输入。
答案 1 :(得分:0)
如果要测试的脚本读取标准输入,则使用该脚本。
for input in 1 2 17 42 63 -1 0 1234568890; do
echo "$input" | ./otherscript
done
或者,如果您的otherscript
已经运行了一个输入循环(例如,输入为空输入作为退出条件),请在此处输入文档:
./otherscript <<HERE
1
2
17
42
63
-1
0
1234567890
HERE
如果您需要为每次运行输入多个值,可以将两者结合起来;
while read age name color; do
(echo "$age"; echo "$name"; echo "$color") | ./otherscript
done <<HERE
1 Baby white
2 Sister yellow
17 Teen black
42 Dad mauve
63 Grandpa chartreuse
0 Piglet pink
-1 Prince purple
1234567890 Ghod rainbowey
HERE
Unix工具经常被设计为从命令行读取参数。这是更好设计的众多原因之一。