目录
作者:bandaoyu 持续更新,连接:http://t.csdn.cn/mVBjJ
shell中的if语句 https://blog.csdn.net/wxx_0124/article/details/95305625
shell中[ ]和[[]]的区别
探索shell中[ ]和[[]]的区别_chen1415886044的博客-CSDN博客
多数情况下[ ]和[[]]是可以通用的,单中括号 [ ],bash 的内部命令,[和test是等同的。双中括号[[ ]],[[是 bash 程序语言的关键字。并不是一个命令,[[ ]] 结构比[ ]结构更加通用。
[ ] 和 [[]]区别
[ ]中可用的比较运算符只有==和!=,可用于字符串比较的,不可用于整数比较,整数比较只能使用-eq,-gt这种形式。
[[ ]] 支持字符串的模式匹配,使用=~操作符时甚至支持shell的正则表达式。字符串比较时可以把右边的作为一个模式,而不仅仅是一个字符串,比如[[ minger == ming? ]],结果为真。[[ ]] 中匹配字符串或通配符,不需要引号。
[[]]测试 | []测试 |
---|---|
< 排序比较 | 不支持 |
> 排序比较 | 不支持 |
&& 逻辑与 | -a 逻辑与 |
== 模式匹配 | ==字符匹配 |
=~正则匹配 | 不支持 |
判断目录是否为空
ls dirname
如果返回为空则目录为空
或者ls dirname|wc -l
如果结果为0则目录为空
最简单的方法:用ls -A $dir
好用的,测试过,对.file也能好用。
#!/bin/sh
#ifdirec
DIRECTORY=$1
#在此加上是不是目录的判断。
if [ "`ls -A $DIRECTORY`" = "" ]; then
echo "$DIRECTORY is indeed empty"
else
echo "$DIRECTORY is not empty"
fi
shell 判断文件/目录是否为空_jfkidear的专栏-CSDN博客_shell判断文件夹是否为空
#判断文件目录是否为空
第一种:
emptydir.sh
-----------------------------------------------------------
#!/bin/sh
DIRECTORY=$1
if [ "`ls -A $DIRECTORY`" = "" ]; then
echo "$DIRECTORY is indeed empty"
else
echo "$DIRECTORY is not empty"
fi
-----------------------------------------------------------
第二种:
count.sh
-----------------------------------------------------------
#!/bin/sh
count=`ls $*|wc -w`
if [ "$count" > "0" ];
then
echo "file size $count"
else
echo "empty!"
fi
-----------------------------------------------------------
#目录是否存在
ifmkdir.sh
-----------------------------------------------------------
#!/bin/sh
dir="test"
if [ ! -d $dir ]; then
echo "$dir not exists"
mkdir "$dir"
else
echo "$dir exists!"
fi
-----------------------------------------------------------
判断字符串包含关系
https://www.jb51.net/article/100490.htm
方法一:利用grep查找
1 2 3 4 5 6 7 8 9 |
|
先打印长字符串,然后在长字符串中 grep 查找要搜索的字符串,用变量result记录结果
如果结果不为空,说明strA包含strB。如果结果为空,说明不包含。
这个方法充分利用了grep 的特性,最为简洁。
方法二:利用字符串运算符
1 2 3</ |