我有一个要求,其中 ScriptA.sh 具有命令来询问用户的输入并执行一组操作。我想通过创建另一个脚本来使其自动化,该脚本将读取ScriptA.sh输出中提出的问题并在运行时提供必要的值。
ScriptA.sh如下:-
echo "Enter the CR Number"
read varnamecr
echo "CR Number is" $varnamecr
echo "Loading the config set. Choose Option From Below set
1.JAN
2.FEB
3.MAR"
read optionchoosen
echo "Option Choosen is :" $optionchoosen
echo "Will run the script/load configuration is this Ok ?[y/N]"
read userinput
echo "Proceed further, User has pressed ->"$userinput"<--Key"
如何编写第二个脚本来实现此目的。在第二个脚本中尝试了spawn
和其他几个命令,但是没有运气。请帮我解决一下这个。
答案 0 :(得分:0)
输入每次都会保持不变吗?如果是这样,您可以创建此脚本的包装以提供所需的输入。
cat wrapper
./ScriptA.sh <<!
123
2
y
!
答案 1 :(得分:0)
由于您没有在标签中指定任何外壳,因此这是ksh中可能的解决方案,尽管很粗糙。它正在使用该shell的协同处理功能(请确保bash不支持它,尽管请不要在其中引用我)
#!/bin/ksh
./ScriptA.sh |&
while read -p Dummy; do
print $Dummy
case $Dummy in
"Enter the CR Number")print -p "CR123456"
;;
"3.MAR")print -p "3"
;;
"Will run the script"*)print -p "y"
;;
esac
done
输出结果为:
Enter the CR Number
CR Number is CR123456
Loading the config set. Choose Option From Below set
1.JAN
2.FEB
3.MAR
Option Choosen is : 3
Will run the script/load configuration is this Ok ?[y/N]
Proceed further, User has pressed ->y<--Key