if的基本用法
if
后边可以直接跟着命令。
echo "good" > ifecho.txt
把good
输出到当前目录下ifecho.txt
文件里边,cat ifecho.txt
首先可以看一下这个文件里边的内容。
然后依次输入:
if cat ifecho.txt
then
echo "right"
fi
可以看到程序依次输出good
和right
。
good
是ifecho.txt
文件里边的内容,也是cat ifecho.txt
应该输出的内容;而right
则是if
命令返回值为零值(0
)进行输出的内容。
ls -l | grep "good.txt"
可以看到当前目录下没有good.txt
文件,接下来依次输入,每输入一行,需要按一下Enter:
if cat good.txt
then
echo "good.txt existing"
fi
可以看到上图中最后输出的是cat: good.txt: No such file or directory
,而没有输出good.txt existing
,这是因为cat good.txt
的返回值是非零值。
echo "ffffff" > good.txt
把ffffff
写入到good.txt
文件里边,然后再次执行下边的命令,每输入一行就在每行末尾输入回车键Enter:
if cat good.txt
then
echo "good.txt existing"
fi
发现输出的结果是
ffffff
good.txt existing
这是因为cat good.txt
的结果是零值(0
)。
if与test的结合
if
需要跟test
结合使用才能更好地实现功能,输入下边的命令时,需要每输入一行,按一下Enter(即回车键)
if test 6 -gt 5
then
echo "6>5"
fi
可以看到最后程序输出了6>5
。
还可以用test
判断一个普通文件是否存在,存在的话,就输出existing
,把下边内容输入命令行里,然后每输入一行就输入Enter。
if test -f good.txt
then
echo "existing"
fi
最后发现输出了existing
。
此文章为7月Day 22学习笔记,内容来源于极客时间《Linux 实战技能 100 讲》。