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