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 讲》。



















