shell
2018-09-13 本文已影响10人
突刺刺
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函数
-
shell函数的定义
function_name ()
function name()
-
shell函数的调用
function_name
name
-
shell函数的传参
function name() { echo "第一个参数:$1" echo "第一个参数:$2" echo "第一个参数:$3" } name "tom" "lily" "jack"
-
shell函数的返回值
-
return
返回整数 (只能返回0~255
之间的数值)function num() { return 1 }
-
echo
可以返回任意数值
/字符串
function num() { echo $1 } result=$(num "Tim") echo "result = ${result}" 打印:result = Tim
-