我有一个#!/ bin / sh脚本,询问用户问题,例如输入您的年龄。
我需要另一个#!/ bin / sh脚本来启动第一个脚本并向其发送静态答案。
如何将答案从一个脚本发送到另一个脚本并回答问题。

谢谢。

最佳答案

如果要测试的脚本读取标准输入,请使用该输入。

for input in 1 2 17 42 63 -1 0 1234568890; do
    echo "$input" | ./otherscript
done


或者,如果您的otherscript已经运行了输入循环(例如,以空输入作为退出条件),请向其提供一个here文档:

./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工具通常被设计为从命令行读取参数。这是更好设计的众多原因之一。

10-02 06:23
查看更多