bash shell会按顺序执行if语句,如果command执行后且它的返回状态是0,则会执行符合该条件执行的语句,否则后面的命令不执行,跳到下一条命令。当有多个嵌套时,只有第一个返回0退出状态的命令会导致符合该条件执行的语句部分被执行,如果所有的语句的执行状态都不为0,则执行else中语句。返回状态:最后一个命令的退出状态,或者当没有条件是真的话为0。
一、
条件
测试操作
要使
Shell
脚本
程序具备一定的“智能”,面临的第一个问题就是如何区分不同的情况以确定执行何种操作。
Shell
环境根据命令执行后的返回状态值(¥?)来
判断
是否执行成功,当返回值为0时表示成功,否则(非0值)表示失败或异常。使用专门的测试工具——test命令,可以对特定
条件
进行测试,并根据返回值来
判断
条件
是否成立(返回值为0表示
条件
成立)。
使用test测试命令时,包括以下两种形式:
test
条件
表达式
[
条件
表达式 ]
这两种方式的作用完全相同,但通常后一种形式更为常用,需要注意的是,方括号“[“ 或 ”]”与
条件
表达式之间需要至少一个空格进行分隔。
1、文件测试:
-f当file存在并且是正规文件时返回真
-g当由pathname指定的文件或目录存在并且设置了SGID位时返回为真
-h当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效
-k当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回真
-p当file存在并且是命令管道时返回为真
如果CPU占用率持续达到80以上则调用打印java线程占用率堆栈的
脚本
,见https://github.com/oldratlee/useful-
shell
s/blob/master/show-busy-java-threads.sh,具体用法见他的github wiki!
#!/bin/bash
#cpu idle percent
cpu_idle=`top -b -d 1 -n 2 | grep Cpu | awk 'NR>1{print $5}' | cut -f 1 -d .`
if [ -d /opt/
script
s/log ]
cd /opt/
script
s
Shell
编程中经常需要
判断
文件状态、字符串是否相等以及两个数值大小等情况,基于这些比较结果再做执行相关操作。本文主要讲述文件状态、字符串、数值大小的
判断
比较方法。
文件状态
判断
文件状态的
判断
通常使用test命令完成,test命令有2种基本格式:test condition / [ condition ]。后者使用时,需注意在
条件
两边加上空格,此种格式最为常用。
判断
文件状态的...
做unix/
linux
下的开发,
脚本
编写的功力是少不了的,作为
shell
编程,也是博大精深的一个技术领域,这里为了学习,就写一个简单的
判断
IP地址是否合法的微型
脚本
程序,这个小程序也是非常有用的。
IP地址是32位的,可以由4个十进制数值表示,每个数值的范围都是0~255.
代码如下:
#!/bin/bash
# Test an IP address for validity:
# Usage:
# valid_ip IP_ADDRESS
# if [[ $? -eq 0 ]]; then echo good; else echo bad; fi
# OR
pwd显示当前工作目录
以上这篇
Linux
中
shell
脚本
获取当前工作目录的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。
您可能感兴趣的文章:使用 Python 获取
Linux
系统信息的代码
Linux
系统信息查看常用命令
linux
shell
中if的各种
判断
Linux
shell
脚本
的建立与执行
linux
she
条件
表达式
条件
表达式文件状态操作符字符串操作符数字操作符逻辑操作符命令分隔符
条件
表达式
基本命令和变量赋值语句属于顺序语句,
条件
和分支属于选择语句,for,while和until语句属于循环语句
条件
表达式是用于
判断
条件
是否满足的逻辑表达式,当
条件
为真,返回0,否则返回1
常用语法:
1、test 测试表达式
2、[ 测试表达式 ] #两边需要有空格
3、[[ 测试表达式 ]]
4、(( 测试表达式 ))
第一种和第二种是等价的,第三种是扩展的test命令,语法4常用于计算
在[[]] 双中括号中