使用“if”和“case”更改主机名

时间:2014-03-17 21:56:18

标签: linux bash sed case sh

我试图使用"案例"结构提供选项和"如果"实际执行操作。我在脚本编写方面非常新,所以请原谅我缺乏知识。为简化起见,我将跳过代码中的任何注释,并仅使用此脚本的1个(一个)选项。

#!/bin/sh
echo " 01. Select a new hostname"
read -p "Make your selection: " varSelection
 case $varSelection in
  1)
    read -p "$(echo -e 'Enter hostname here: \n')" varHostName
    read -p "¿Are u sure u want to use \" $varHostname \"? (y/n)"varHostNameRight
    if [ $varHostNameRight == y ]; then
        sed -i "s/^\(HOSTNAME\s*=\s*\).*\$/\1$varHostName/" /etc/sysconfig/network
        hostname $varHostName
    else
        if [ $varHostNameRight == n ]; then
    fi
    ;;
 esac

在这个例子中,我想要实现的是,如果用户选择" y"在#34; 04"行中,在执行第6行和第7行之后,他返回到" case"菜单(实际上,案例中的选项比1更多))我不知道如何做到这一点:在我的脚本中应用每个选项后,我必须重新运行它以选择其他选项。 / p>

此外,如果用户选择" no"在排队" 04",我想"循环"排队" 03" ...但是,我不知道该怎么做:(

拜托,欢迎任何帮助!

致以最诚挚的问候,

Sebas

1 个答案:

答案 0 :(得分:0)

使用while循环:

while read -p "Make your selection: " varSelection; do
...
done
适当地

break