Linux系统中的shell脚本-——if判断语句
1.格式
2.条件判断相关参数:文件类型判断
实验操作如下:
判断软链接时,如果链接的文件 不存在,-L并不能检测出来。解决方案: 先用-e判断链接的文件是否有效(存在?), 然后判断是否是一个软链接。
3.条件判断相关参数:文件权限判断
4.条件判断相关参数:新旧参数判断
注意:这里的新旧指的是文件最后一次修改的时间。
实验如下:
5.条件判断相关参数:判断整数
6.条件判断相关参数:判断字符串
7.多重条件判断
应用实例:
1. 根据当前登录用户uid判断是否为超级用户?提示:uid=0代表超级用户
1-1). 如果不是超级用户,则输出”the user is not root”
1-2). 如果是超级用户输出”the user is root”,否则输出”the user is not root”
2. 使用类C风格的语法进行编写shell脚本
拓展: 类C风格的数值比较规则
• ((表达式))
• =表示赋值
• ==表示判断数值是否相等
3. 用户输入云服务器相关信息(主机名),判断主机名输入是否合法?
8.流程控制语句
应用案例1:主机连通性判断
shell编程如下:
#!/bin/bash11 ip=$*12 [ -z $ip ] && {13echo "ERROR Please input ip"14exit15 }16 ping -c 1 $ip &> /dev/null17 if [ $? -eq 0 ];then18echo ping $ip is ok19 else20echo ping $ip failed21 fi
shell编程如下:
拓展知识:pgrep命令:以名称为依据从运行进程队列中查找进程,并显示查找到的进程id
● 选项
● -o:仅显示找到的最小(起始)进程号;
● -n:仅显示找到的最大(结束)进程号;
● -l:显示进程名称;
● -P:指定父进程号;pgrep -p 4764 查看父进程下的子进程id
● -g:指定进程组;
● -t:指定开启进程的终端;
● -u:指定进程的有效用户ID。
1 #!/usr/bin/bash2 name=$*3 pgrep $name &> /dev/null4 if [ $? -eq 0 ];then5echo "$name process exists"6 else7echo "$name process not exists"8 fi
10 #!/bin/bash11 read -p "please input a username:" username12 id $username13 if [ $? -eq 0 ];then14echo "username $username is exist"15else16 echo "username $username is not exist"17fi
4.shell 编程语句如下
10 #!/bin/bash11 rpm -q $* &> /dev/null12 if [ $? -eq 0 ];then13echo "This package $* is installed"14 else15echo "ERROR:please install $* package"16dnf install $*17 fi
5.shell 编程语句如下