shell常用判断文件的方法
-
-e filename
,如果filename
存在,则为真
-
-d filename
,如果filename
是目录,则为真
-
-f filename
,如果filename
为常规文件,则为真
-
-L filename
,如果filename
为符号链接,则为真
-
-h filename
,如果filename
软链接,则为真
-
-r filename
,如果filename
可读,则为真
-
-w filename
,如果filename
可写,则为真
-
-x filename
,如果filename
可执行,则为真
-
-s filename
,如果filename
长度不为0,则为真
- 例子:判断文件夹存不存在
if [ ! -d "${filename}" ];then
echo "文件夹不存在"
else
echo "文件夹已经存在"
fi
shell截取字符串的方法
- 例子
link="Users/my/Desktop/test.ipa"
-
echo ${link#*/}
= my/Desktop/test.ipa
,截取从左边第一个/
到结尾的字符
-
echo ${link##*/}
= test.ipa
,截取从左边最后一个/
到结尾的字符
-
echo ${link%/*}
= Users/my/Desktop
,截取从右边第一个/
到开头的字符
-
echo ${link%%/*}
= Users
,截取从右边最后一个/
到开头的字符
echo转义符号
-
-e
,打开转义替换
-
-E
,禁止转义替换(默认就是禁止转义转换)
-
\\
,反斜杠
-
\a
,警报,响铃
-
\b
, 退格,删除
-
\c
,两个echo之间不换行
-
\f
, 换页,将当前位置移到下页开头
-
\n
, 换行
-
\r
,回车
-
\t
, 水平制表符(tab键)
-
\v
, 垂直制表符
- 例子
echo -e "第一行\n第二行"
输出: 第一行
第二行
shell比较整型数大小
-
-eq
相等(equal)
-
-ne
不等(not equal)
-
-gt
大于(greater than)
-
-lt
小于(less than)
-
-ge
大于等于(greater than or equal)
-
-le
小于等于(less than or equal)
shell字符串判断
-
[ $str1 = $str2 ]
等于
-
[ $str1 != $str2 ]
不等于
-
[ -z $str ]
空字符串,长度:0
;返回:true
-
[ -n $str ]
/ [ $str ]
非空字符串,长度:>0
;返回:true
-
[[ $A == *$B* ]]
真为包含,假则不包含*是shell的通配符
-
[[ $strA =~ $strB ]]
真为包含,假则不包含
shell函数
网友评论