Shell脚本学习-打印简单菜单

打印菜单和选择菜单项的脚本:

[root@vm1 scripts]# cat menu_choise.sh
#!/bin/bash
#
path=/server/scripts

[ ! -d "$path" ] && mkdir $path -p

#menu
cat </dev/null
[ $? -ne 0 ] && {
    echo "The num you input must be (1|2|3)"
    exit 1
}

#
[ $num -eq 1 ] && {
    echo "start installing lamp."
    sleep 2
    [ -x "$path/lamp.sh" ] || {
        echo "$path/lamp.sh does not exist or can not be exec."
        exit 1
    }
    $path/lamp.sh
    #source $path/lamp.sh

    exit $?
}

#
[ $num -eq 2 ] && {
    echo "start installing lnmp."
    sleep 2
    [ -x "$path/lnmp.sh" ] || {
        echo "$path/lnmp.sh does not exit or can not be exec."
        exit 1
    }
    $path/lnmp.sh
    #source $path/lnmp.sh
    exit $?
}

#
[ $num -eq 3 ] && {
    echo bye.
    exit 3
}

#
[[ ! $num = ~[1-3] ]] && {
    echo "the num you input must be (1|2|3)"
    echo "Input Error"
    exit 4
}

代码学习:

1)cat用法:其实就是按指定格式打印多行文本。

cat <

第二个END要顶格写,开头不要带空格,END要成对出现,可以使用任意的成对字符来替代,不要和内容冲突即可。

2)expr $num + 1 &> /dev/null

判断输入num是否为整数,然后根据返回值进行判断。

3)[ -x "$path/lamp.sh" ] && { } 这个是判断脚本是否可以执行,若不可执行,则给予提示。

这是一个思想,程序为什么不直接执行,而是要先进行一个判断呢?

4)[[]] 正则匹配方法的应用。

你可能感兴趣的:(Shell,linux)