shell文件测试,菜单表示思想

---恢复内容开始---

文件测试表达式
    -f 文件存在且为普通文件
    -d 文件存在且为目录文件
    -s 文件大小不为0则真
    -e 文件存在则真
    
    -r 文件存且可读  #文件属性对于root有时不好用
    -w 写
    -x 执行
    -L 存在且为链接文件
    f1 -nt f2 f1比f2新则为真
    f1 -ot f2 f1比f2旧则为真
    这些操作符可用于[[]],[],test几乎通用,更多操作符查看man test.
    
    生产事例:
    prog="rpcbind"
    [ -f /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog  #如果存在则加载
    [ -f /etc/sysconfig/$prog ] || exit 1 #不存在退出
    
    
    事例2,大括号可执行多个命令
    [ $q -eq 3 ]&&{
    echo 1
    echo 2
    echo 3
    }
    
判断是否为整数:去掉“非数字”是否等于本身  ["`echo "123a|sed -r ‘s#[^0-9]##g‘`" = "123a"]

#!/bin/sh
                read -p "pls input two num :" num1 num2
                a=num1
                b=num2                
                #no.1
                [ $# -ne 2 ]&&{                    #"$#"表示输入的变量个数
                    echo "usage: num1 num2"
                    exit 1
                }    
                #no.2
                ["`echo "$a"|sed -r ‘s#[^0-9]##g‘`" = "$a" ]||{
                    echo "first arg must be int"
                    exit 2
                }
                #no.3
                [ $1 -lt $b ]&&{
                    echo "$a<$b"
                    exit 3
                }

企业综合事例:1.当用户输入1时,输出“start install lamp。” 然后执行/server/script/lamp.sh,脚本内容输出 “lamp is install”后退出脚本
              2。当用户输出2时,输出“start install lnmp。” 然后执行/server/script/lnmp.sh,脚本内容输出 “lnmp is install”后退出脚本
              3.当输入3时,退出当前菜单及脚本
              4.当输入任何其他自负,给出提示“input error”后 退出脚本
              5.要对执行的脚本进行条件判断,例如:脚本是否存在,是否可执行等。
    打印简单选择菜单示例1,
                cat <<END
                    1.wangfei
                    2.gongli
                END
                read -p "which do you like?:" a
                echo "i guess,you like $a"
    打印简单选择菜单示例2,函数写法,
                menu(){
                cat <<END
                    1.[install lamp]
                    2.[install lnmp]
                    3.[exit]
                    pls input the num you want:
                END
                }
                menu
                read num
                [ "$num" = "1" ]&&{
                    echo "start install lamp."
                    [ -x /server/script/lamp.sh ]||{
                    echo "lamp.sh error"
                    exit 2}
                    . /server/script/lamp.sh
                }
                [ "$num" = "3" ]&&{
                    echo "bye"
                    exit 0
                }
                echo "Iput Error"
                exit 1
    打印多级菜单示例:

cat << EOF

|-----------System Infomation-----------

| DATE       :$DATE

| HOSTNAME   :$HOSTNAME

| USER       :$USER

| IP         :$IPADDR

| DISK_USED  :$DISK_SDA

| CPU_AVERAGE:$cpu_uptime

----------------------------------------

|****Please Enter Your Choice:[0-5]****|

----------------------------------------

(1) Configure $SERVER1 Service

(2) Configure $SERVER2 Service

(3) Configure NETWORKE Service

(4) Change Passwd

(5) Logs

(0) Quit

EOF

read -p "Please enter your choice[0-5]: " input

case $input in

#web service

1)

clear

while [ "$flag" -eq 0 ]

do

cat << EOF

----------------------------------------

|****Please Enter Your Choice:[0-3]****|

----------------------------------------

(1) Start $SERVER1 Service

(2) Stop $SERVER1 Service

(3) ReStart $SERVER1 Service

(0) Back

EOF

read -p "Please enter your choice[0-3]: " input1

case $input1 in

1)

echo -e "\n>>>>>>>>>>>$DATE Start $SERVER1">>/log.txt

$SERVER1_START 2>>/log.txt

if [ $? == 0 ];then

echo "Start $SERVER1......................................................[OK]"

else

echo "Start $SERVER1......................................................[FAILED]"

fi

sleep 5

clear

;;

2)

echo -e "\n>>>>>>>>>>>$DATE Stop $SERVER1">>/log.txt

$SERVER1_STOP 2>>/log.txt

if [ $? == 0 ];then

echo "Stop $SERVER1.......................................................[OK]"

else

echo "Stop $SERVER1.......................................................[FAILED]"

fi

sleep 5

clear

;;

3)

echo -e "\n>>>>>>>>>>>$DATE ReStart $SERVER1">>/log.txt

/usr/local/tdoa/php/sbin/php-fpm restart 2>>/log.txt

$SERVER1_RESTART 2>>/log.txt

if [ $? == 0 ];then

echo "Restart $SERVER1....................................................[OK]"

else

echo "Restart $SERVER1....................................................[FAILED]"

fi

sleep 5

clear

;;

0)

clear

break

;;

*) echo "----------------------------------"

echo "|          Warning!!!            |"

echo "|   Please Enter Right Choice!   |"

echo "----------------------------------"

---恢复内容结束---

时间: 2024-08-29 01:18:23

shell文件测试,菜单表示思想的相关文章

Shell 文件测试运算符

文件测试运算符 文件测试运算符用于检测 Unix 文件的各种属性. 属性检测描述如下: 操作符 说明 举例 -b file 检测文件是否是块设备文件,如果是,则返回 true. [ -b $file ] 返回 false. -c file 检测文件是否是字符设备文件,如果是,则返回 true. [ -c $file ] 返回 false. -d file 检测文件是否是目录,如果是,则返回 true. [ -d $file ] 返回 false. -f file 检测文件是否是普通文件(既不是目

shell运算符之 关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符

shell运算符有很多,关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符 1,算术运算符 原声bash 不支持简单的算术运算,可以使用expr 工具 两点注意: 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样. 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边. #!/bin/basha=10b=20rst=`expr 2 + 2`echo '2+2 =' ${rst} rst=`exp

给文件右击菜单增加7-ZIP浏览功能(用注册表设置Shell调用预览命令)

疯狂delphi delphiXE7.XE8.XE10公开课A 群号:58592705 QQ:513187410 朱建强 BAT-给文件右击菜单增加7-ZIP浏览功能 Reg给文件右击菜单增加7-ZIP浏览功能 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\用7-ZIP浏览(ZJQ)]"icon"="d:\\7ZIP.ico" [HKEY_CLASSES_ROOT\*\shell\用7

shell之算数运算符、逻辑运算符、关系运算符、布尔运算符、文件测试运算符

注意事项: (1)bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用: (2)完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边. (3)条件表达式要放在方括号之间,变量与符号之间必须以空格隔开,命令才可以识别: (4)乘号(*)在shell中有特殊含义,作为乘法符号时,要在*前边必须加反斜杠(\)才能实现乘法运算: (5)关系运算符采用的是英文字母的缩写,等于(-eq,equal),不等于(-ne,not equ

(转)shell脚本之文件测试操作符及整数比较符

shell脚本之文件测试操作符及整数比较符 原文:http://www.cnblogs.com/Steward-Xu/p/6722592.html 一.文件测试操作符: 在书写测试表达式是,可以使用一下的文件测试操作符. 更多的参数可以help test或者man bash 二.字符串测试操作符: 字符串测试操作符的作用:比较两个字符串是否相同.字符长度是否为0,字符串是否为null(注:bash区分长度字符串和空字符串) "="比较两个字符串是否相同,与"=="等

shell算术运算和文件测试及多分支if语句

shell算术运算 1.let 算术运算表达式 例如:let C=$A+$B 2.$[ 算术表达式 ] 例如:中括号和表达式之间必须有空格 3.$((算术表达式)) 例如: 4.expr 算术表达式 例如:表达式要用反引号,运算符之间要有空格 shell中的条件测试类型 整数测试 -eq等于 -ne不等于 -gt大于 -lt小于 -ge大于等于 -le小于等于 例如:判断当前系统是否有默认用户的shell是bash,如果有,显示其中的一个用户名,如果没有,就显示没有此用户 字符测试 文件测试 -

Linux Shell 04 数字/字符串/文件测试

一. 数字测试 格式:n1  -op  n2 测试操作op: eq/ne/le/ge/lt/gt    -->    等于/不等于/小于等于/大于等于/小于/大于 1. 数字比较可以使用特殊的(())操作符,用法更接近于C语言,见数字测试. 二. 字符串测试 s1 = s2 #s1与s2是否相同 s1 != s2  #s1与s2是否不相同 s1 < s2 #s1是否小于s2 s1 > s2 #s1是否大于s2 -n s1 #s1长度是否大于0 -z s1  #s1长度是否为0 1. 字符

linux shell 学习笔记--文件测试符

1. 文件测试操作 ---------------- 返回true 如果... -e 文件存在 -a 文件存在 这个选项的效果与-e 相同.但是它已经被弃用了,并且不鼓励使用 -f file 是一个regular 文件(不是目录或者设备文件) -s 文件长度不为0 -d 文件是个目录 -b 文件是个块设备(软盘,cdrom 等等) -c 文件是个字符设备(键盘,modem,声卡等等) -p 文件是个管道 -h 文件是个符号链接 -L 文件是个符号链接 -S 文件是个socket -t 关联到一个

shell编程---文件测试及特殊变量

一.算数运算 1.let 算术运算表达式 let C=$A+$B 2.$[算术运算表达式] C=$[$A+$B] 3.$((算术运算表达式)) C=$(($A+$B)) 4.expr 算术运算表达式,表达式中各操作数及运算符之间要有空格,而且要使用命令引用 C=`expr $A + $B` 5.提前结束脚本程序 exit 状态返回码 6.文件测试 -e FILE:测试文件是否存在 -f FILE: 测试文件是否为普通文件 -d FILE: 测试指定路径是否为目录 -r FILE: 测试当前用户对