if特殊用法
[ -z "$a" ] 表示变量a的值是否为空时,会怎么样
[ -n "$a" ] 表示变量a的值不为空时,会怎么样
! -z = -n
! -n = -z
建议,写这两个的时候,都加上双引号
![if特殊用法](https://s1.51cto.com/images/blog/201901/02/f44c39c06bf96a9ba1208e5d17c8edb9.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
[ -n "$a" ] 表示变量a的值不为空时,会怎么样,判断一个文件的内容不为空,则怎么样
**注意的是,当是变量的时候,需要双引号,如果是文件的话,就不需要双引号
![if特殊用法](https://s1.51cto.com/images/blog/201901/02/e5fd66dbb1d8d9347ff1741502f9b6e8.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
grep -w '123' 1.txt # -w 指的是精准查询。指定123这个单词。
if grep -q '123' 1.txt; then 表示如果1.txt中含有'123'的行时会怎么样
![if特殊用法](https://s1.51cto.com/images/blog/201901/02/fb9eef35d5cf73660062d22b7c9d8bd3.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
if [ ! -e file ]; then -e表示文件不存在时会怎么样
if (($a<1)); then …等同于 if [ $a -lt 1 ]; then…
[ ] 中不能使用<,>,==,!=,>=,<=这样的符号
if 和 then 可以写命令