制作一个程序,用于输入数字1-7的用户输入,然后根据用户选择的数字显示命令。 [Bash - CentOS]

时间:2016-04-02 19:47:47

标签: linux bash centos

正如标题所说,我试图制作一个用户输入数字为1-7的程序,然后为每个数字显示相应的命令。

我遇到的问题是找到一个将每个数字设置为命令的好方法。

起初,我想过做这样的事情。

OSI=$(uname -a)
echo $OSI

但问题实际上是将它实现为循环。让我们说用户是这样提示的:

 "Enter a number:"

用户输入数字1,数字1是OSI。好吧,如果用户选择数字2,则需要显示不同的命令,依此类推。

对于像我这样的初学者来说,这有点太复杂了。我通过论坛和不同的帖子阅读,但我无法弄清楚实现这一目标的正确命令。

我尝试过做这样的事情而且失败了:

#!/bin/bash

read -p "Enter a number:" n1 n2 n3 n4 n5 n6 n7 
if n1=1; then
     uname - a
else n2=2; "different command"
fi

我意识到我在bash上完全是垃圾。我并没有要求任何人解决这个问题,只是以对我有意义的方式给我一些指示。

感谢。

1 个答案:

答案 0 :(得分:0)

试试这个测试版本:

#!/bin/bash --

printf "menu items:\n 1) uname -a\n 2) date\n q) exit\n"
read -p "Enter your choice: " response

if [ -z "$response" ] ; then
  printf "Choice invalid\n"
  exit 1
fi
if [ "$response" = q ] ; then
  exit 0
fi
if [ "$response" = 1 ] ; then
  uname -a
elif [ "$response" = 2 ] ; then
  date
else
  printf "Choice invalid\n"
fi

由@EdMorton撰写案例是一个更好的选择。