-
UNIX/Linux shell脚本 if语句的几个案例(适合Linux初学者)
2017-11-01 01:28:001、单分支的if语句 if 条件测试命令 then 命令序列 fi 2、双分支的if语句 if 条件测试命令 then 命令序列1 else 命令序列2 fi 3、多分支的if语句(elif 可以嵌套多个,一般多了用case表达) if 条件测试命令1 then ...if语法:
1、单分支的if语句
if 条件测试命令
then
命令序列
fi
2、双分支的if语句
if 条件测试命令
then
命令序列1
else
命令序列2
fi
3、多分支的if语句(elif 可以嵌套多个,一般多了用case表达)
if 条件测试命令1
then
命令序列1
elif 条件测试命令2
then
命令序列2
.........
else
命令序列n
fi
案例1、
#!/bin/bash
#######################################################################
# "提示用户指定备份目录的路径,若目录存在则显示信息跳过,否则显示相应提示信息,并创建该目录"
# "-----Designed by UNIX.ROOT Email: UNIX.ROOT@hotmail.com"
######################################################################
read -p "What is your backup directoy:" BakDir
if [ -d $BakDir ]; then
echo "$BakDir already exist."
else
echo "$BakDir is not exist, will make it."
mkdir $BakDir
fi
本文出自 “UNIX/Linux Discovery” 博客,请务必保留此出处http://dreamfire.blog.51cto.com/418026/1079173
案例2、
#!/bin/bash
#######################################################################
#统计当前登录到系统中的用户数量,若判断是否超过三个,若是则显示实际数量并给出警告信息,否则列出
登录的用户账户名称及所在终端
# "-----Designed by UNIX.ROOT Email: UNIX.ROOT@hotmail.com"
######################################################################
UserNum=`who | wc -l`
if [ $UserNum -gt 3 ]; then
echo "Alert, too many login users ( Total: $UserNum)."
else
echo "Login Users:"
who | awk `{print $1,$2}`
fi
本文出自 “UNIX/Linux Discovery” 博客,请务必保留此出处http://dreamfire.blog.51cto.com/418026/1079173
诺技术博客新地址: www.rsyslog.org ,欢迎前来访问!
案例3、
#!/bin/bash
#######################################################################
#每隔5分钟检测一次 mysql服务进程的运行状态,若发现mysql进程已经终止,则在"/var/log/messages"文件中追加写入日志信息(包括当时时间)并重启httpd服务;否则不做任何操作
# -----Designed by UNIX.ROOT Email: UNIX.ROOT@hotmail.com
######################################################################
service httpd status &> /dev/null
if [ $? -ne 0 ] ; then
echo "At time:$(date):Http Server is down." >> /var/log/messages
/etc/rc.d/init.d/httpd start
fi
# crontab -e
#*/5 * * * * /data/shell.sh/chkdhcpd.sh
本文出自 “UNIX/Linux Discovery” 博客,请务必保留此出处http://dreamfire.blog.51cto.com/418026/1079173
案例4、
#!/bin/bash
#######################################################################
# 检查portmap进程是否已经存在,若已经存在则输出 "Portmap service is running.";否则检查是否存在"/etc/rc.d/init.d/portmap"可执行脚本,存在则启动portmap服务,否则提示"no portmap script files"
# -----Designed by UNIX.ROOT Email: UNIX.ROOT@hotmail.com
######################################################################
pgrep portmap &> /dev/null
if [ $? -eq 0 ] ; then
echo "Protmap service is running."
elif [ -x "/etc/rc.d/init.d/portmap" ]; then
/etc/rc.d/init.d/portmap start
else
echo "no portmap script files."
fi
本文转自凌激冰51CTO博客,原文链接:http://blog.51cto.com/dreamfire/1079173,如需转载请自行联系原作者
-
Linux shell脚本编程if语句的使用方法(条件判断)
2020-09-15 21:16:52主要介绍了Linux shell脚本编程if语句的使用方法,大家参考使用吧 -
Linux shell脚本程序 if语句无法识别命令
2019-07-17 09:12:50Linux shell if 语句无法识别命令 这两天看了一些shell编程的东西,在按照书上的代码编写运行的时候出现了意想不到的错误,明明很简单的if else语句硬是搞了一天才搞明白! shell 版本:bash 5.0 + vi文本编辑器 ...Linux shell if 语句无法识别命令
这两天看了一些shell编程的东西,在按照书上的代码编写运行的时候出现了意想不到的错误,明明很简单的if else语句硬是搞了一天才搞明白!
shell 版本:bash 5.0 + vi文本编辑器
这里先给出正确的代码!脚本命名为test.sh
#!/bin/bash # #set -x echo -n "are you a student?" read answer if [ $answer = Y ] then echo "Yes, I'm a student!" else echo "No, I'm a teacher!" fi exit 0
主要错误就是脚本格式的问题!
1、if与方括号之间需要存在空格;
2、方括号中的内容与方括号之间是需要存在空格的;
3、等号两端需要空格。==与=是等价的!
如有其他疑问也可以一起交流!
-
LINUX SHELL脚本的if语句实在是诡异
2019-09-02 08:33:51这语法实在是让人记不住。比如说判断参数1是否为0: ...if [ "$1" = "0" ] ; then echo $1 fi 这里[];then都是多余的。 有的时候还要使用-ne之类,更是让人抓狂。不是说脚本简单吗?这明明比java/c都复杂。 ...这语法实在是让人记不住。比如说判断参数1是否为0:
if [ "$1" = "0" ] ; then echo $1 fi
这里[];then都是多余的。
有的时候还要使用-ne之类,更是让人抓狂。不是说脚本简单吗?这明明比java/c都复杂。
-
linux shell脚本编程if语句内判断参数详解
2015-05-05 14:20:00If [ $a = $b ] 如果string1等于string2 (字符串允许使用赋值号做等号) if [ $string1 != $string2 ] 如果string1不等于string2 if [ -n $string ] 如果string 非空(非0),返回0(true)...文件表达式
–b file 当file存在并且是块文件时返回真
-c file 当file存在并且是字符文件时返回真
-d file 当pathname存在并且是一个目录时返回真
-e pathname 当pathname指定的文件或目录存在时返回真
-f file 当file存在并且是正规文件时返回真
-g pathname 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真
-h file 当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效
-k pathname 当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回真
-p file 当file存在并且是命令管道时返回为真
-r file 当由pathname指定的文件或目录存在并且可读时返回为真
-s file 当file存在文件大小大于0时返回真
-u pathname 当由pathname指定的文件或目录存在并且设置了SUID位时返回真
-w pathname 当由pathname指定的文件或目录存在并且可执行时返回真。一个目录为了它的内容被访问必然是可执行的。
-o pathname 当由pathname指定的文件或目录存在并且被子当前进程的有效用户ID所指定的用户拥有时返回真。
-x file 如果文件file存在且可执行,则返回真
-z STRING 如果字符串长度为0则为真
整数变量表达式
if [ int1 -eq int2 ] 如果int1等于int2
if [ int1 -ne int2 ] 如果不等于
if [ int1 -ge int2 ] 如果>=
if [ int1 -gt int2 ] 如果>
if [ int1 -le int2 ] 如果<=
if [ int1 -lt int2 ] 如果<
字符串变量表达式
If [ $a = $b ] 如果string1等于string2 (字符串允许使用赋值号做等号)
if [ $string1 != $string2 ] 如果string1不等于string2
if [ -n $string ] 如果string 非空(非0),返回0(true)
if [ -z $string ] 如果string 为空
if [ $sting ] 如果string 非空,返回0 (和-n类似) -
Linux shell脚本 (十一)if语句
2018-02-26 13:41:32if语句 if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。Shell 有三种 if ... else 语句:if ... fi 语句;if ... else ... fi 语句;if ... elif ... else ... fi 语句。1) if ... else 语句if ... ... -
LINUX shell 脚本语句
2013-12-30 11:08:19LINUX中shell脚本中语句的基本用法 一、if ...then...fi if [ 条件判断一 ] && (||) [ 条件判断二 ]; then elif [ 条件判断三 ] && (||) [ 条件判断四 ]; then 第二段判断,如果第一段不符合要求就转到 -
Linux-shell脚本-if语句/case语句
2016-06-02 18:14:32格式if 条件 then Command else Command fi 例子创建一个文件,文件名为 test.sh,并进去#!/bin/bash number=150 if[ $number -gt 300] then echo "Number is greater" elif[ $number -lt 300] then echo "Number ... -
Linux Shell 脚本中常用语句(for,while,if,case)
2018-06-21 14:29:44Linux Shell 脚本中常用语句 1 for 语句 1.1 for…do…done (固定循环) for 这种语法,则是“已经知道要进行几次循环”的状态! for 的语法是: for var in con1 con2 con3 ... do 程序段 done 以上面的例子来... -
linux shell编程if语句内判断参数
2013-02-28 13:40:00位置参数 $1, $2,..., $N,$#代表了命令行的参数数量, $0代表了脚本的名字,第一个参数代表$1,第二个参数代表$2,以此类推,参数数量的总数存在$#中,上面的例子显示...shell 编程中使用到得if语句内判断参数 ... -
linux 常用shell脚本语句
2017-12-19 10:50:00最近老大让写一个shell脚本,每天从一个固定IP中取到相应文件,所以想写一个简单的shell脚本命令,供大家学习交流。先做一个简单的例子,先看效果吧, 代码如下: #!/bin/sh #定义一个变量datetime,并赋值 ... -
linux shell编程if语句内判断参数详解
2012-08-29 10:48:27第一个参数代表$1,第二...shell 编程中使用到得if语句内判断参数 –b 当file存在并且是块文件时返回真 -c 当file存在并且是字符文件时返回真 -d 当pathname存在并且是一个目录时返回真 -e 当pathname指... -
Linux Shell脚本编程-语句控制
2019-09-24 11:35:07过程式编程语言bash脚本编程面向过程的编程 顺序执行:默认法则,按照顺序一条一条语句执行 选择执行:分支,条件判断,符合条件的分支予以执行 循环执行:将同一段代码反复执行有限次,所以循环必须有退出条件,... -
Linux中shell脚本if判断语句中的逻辑"非"!不就怕结果取反了吗?
2020-03-29 17:49:33以下代码表示,判断目录是否存在,若存在则结束条件判断和整个shell脚本,若不存在,则创建这个目录。 ``` $DIR="/media/cdrom" if [ ! -e $DIR] then mkdir -p $DIR fi ``` 疑问:按照4.2.3章节的内容,将!... -
Linux shell脚本——if运算例子
2015-06-12 15:26:15原文出处:... 下面以具体例子来描述shell脚本中if语句的使用 #!/bin/sh #define a variable,定义一个变量,此处等号两边不能有空格 v="test shell commond" #print the variable,且没有 -
linux shell 脚本编程 条件语句学习
2018-01-14 20:58:371.if 条件语句学习 if (表达式) #if(variable in array) 语句1 else 语句2 fi 1.例子 #!/bin/bash num=100 if ((num>4));then (()) 表示比较大小 echo "this num is $num greater 4" fi 逻辑...