脚本运行另一个脚本

时间:2013-12-15 18:37:23

标签: linux shell sh

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

感谢。

2 个答案:

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