2013-12-15 215 views
0

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

谢谢。

+0

在另一个调用sh scipt就像从提示中调用脚本...也许我错过了一些东西,或者您必须改善您的问题/需求... – user2196728

+0

您需要预期,它会提供给您的脚本取决于来自它的输入。 – michael501

回答

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

0

让我们把一个要求输入脚本,userage.sh和调用脚本caller.sh

如果你想userage.sh采取输入,无需用户提示,重做,这样,如果没有参数,接受用户输入,如果有参数,则将这些参数作为输入。

相关问题