使用Bash将内容输入到c程序中

时间:2011-12-13 16:44:54

标签: bash shell

您好我正在尝试创建一个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

但它要么失败要么只是永远循环而没有到达第二个菜单。

是否可以这样做?

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,这是为这类事情而设计的。