问题:在一个Shell脚本中,我想要停止输入,并且提示用户选择。标准的是‘YesNoCancel 典型问题。我怎样实现这个典型的BASH提示呢?

回答:得到用户输入一个Shell提示符,最简单和最广泛的有效的方法是read命令。最好的方法是举例说明 它的使用,这是一个简单的证明。

  • while true; do
  • read -p "Do you wish to install this program?" yn
  • case $yn in
  • [Yy]* ) make install; break;;
  • [Nn]* ) exit;;
  • * ) echo "Please answer yes or no.";;
  • esac
  • done

Steven Huwig指出的另一种方法是bashselect命令。下面是使用select命令的一个例子:

  • echo "Do you wish to install this program?"
  • select yn in "Yes" "No"; do
  • case $yn in
  • Yes ) make install; break;;
  • No ) exit;;
  • esac
  • done

select命令不需要清理输入框...它提示你输入你的选择,并且你输入一个你想要的一个数字。select自动的循环...如果它们给予一个无效的输入,这里不需要一个‘while true’循环。