您好我正在尝试创建一个bash程序来调用程序并输入菜单选择。
例如我的程序运行
Hello world:
1) Item 1
2) Item 2
Enter : 2
Item 2 Menu
1) sub Item A
2) sub item B
enter: 1
我尝试过$ 2 | 1 | ./program和$。/ program | 2 | 1
但它要么失败要么只是永远循环而没有到达第二个菜单。
是否可以这样做?
答案 0 :(得分:3)
假定一个基本上像这样的程序:
pmenu () {
printf '%s) %s\n' "$1" "$2"
}
m1 () {
pmenu 1 'Item 1'
pmenu 2 'Item 2'
}
m2 () {
pmenu 1 'sub Item A'
pmenu 2 'sub Item B'
}
printf 'Hello, World:\n'
m1
read -p "enter: " m
case "$m" in
1 ) m2 ;;
2 ) m2 ;;
esac
read -p "enter: " m
echo "You chose: $m"
然后你可以说
printf '2\n1\n' | program
对于任何不那么简单的事情,你可能需要学习expect
,这是为这类事情而设计的。