码迷,mamicode.com
首页 > 系统相关 > 详细

shell脚本常用(1)

时间:2018-02-22 21:40:47      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:$*   ash   表达   bash   pre   用户   sci   空格   -o   

\u    表示当前用户名 \h    表示机器名称 \W    表示当前工作目录的基名 \w    表示当前工作目录的全路径 $0、$1、$2、$3:         $0    指此shell文件的名称     $1    指传给shell程序的第一个参数     $2    指第二个参数     $3    指第三个参数 $#    shell命令中参数的个数 $*、$@:    shell命令中的所有参数 $?:    shell命令或shell程序执行后的返回值或退出状态值,是一个介于0~255之间的整数

  

字符串比较运算符

 =或==    判断两个字符串是否相等
 !=      判断两个字符串是否不想等
 <        左边的字符串在ASCII码表的顺序前于右边的字符串,只能用于[[ ]]中
 >        与<效果相反,只能用于[[ ]]
 -z       字符串是否为空
 -n       字符串是否非空
 注意:字符串比较运算符不存在“>=”或“<=”

  


整数比较逻辑表达式

-eq    表示等于
-ne    表示不等于
-lt    表示小于
-gt    表示大于
-le    表示小于等于
-ge    表示大于等于

上述运算符可以用于(( ))和[[ ]],整个比较表达式两侧及比较运算符两侧留有空格。
如果用于[[ ]],要注意整个逻辑表达式两侧及比较运算符两侧留有空格。
如果用于(( )),可不必留空格。
除了=和!=,[]中不能使用数学上的比较运算符。
在[[ ]]中,两类数值比较运算符都可以使用。
在(( ))中只能使用=、!=、<、>、>=、<=,不能使用第一类比较运算符。



文件判断与比较逻辑表达式

-e    文件存在
-f    正常文件(不是目录或设备文件)
-s    不是空文件
-d    文件是目录
-h    链接文件
-r    对当前文件用户可读
-w    对当前文件用户可写
-x    对当前文件用户可执行
-O    当前用户为文件所属主
-nt    如f1 -nt f2 表示文件 f1 比 f2 新
-ot    如f1 -nt f2 表示文件 f1 比 f2 旧



如果一个变量赋值为包含空格的字符串,在[ ] 中使用这个变量时,要使用双引号括住,而在 [[ ]] 则不需要。


多个逻辑表达式的复合

-a 或 &&    表示 与
-o 或 ||    表示 或
!           非运算符

在[ ]中使用-a、-o、!.            不能使用圆括号括住逻辑表达式构成复杂逻辑表达式,而要使用\( \)的形式,可以使用$(( ))进行逻辑表达式的复杂运算。
在[[ ]]和(( ))中使用&&、||、!    可以使用圆括号
&& 和 || 可以在两对 [ ] 之间使用

示例:
[ 1 -lt 2] && [ 3 -gt 4 ]



case语句--语法

case expression in
value1)
    action1
;;
value2)
    action2
;;
...
*)
    action
;;
esac


*        表示任意个任意字符
?        表示一个任意字符
[ ]      表示一个取值范围,用管道符表示逻辑或











shell脚本常用(1)

标签:$*   ash   表达   bash   pre   用户   sci   空格   -o   

原文地址:http://blog.51cto.com/10579005/2072223

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!