if expression
then
commands
fi
这是if其中的一种结构,在结构中就能看到if 后面接的是什么。
这个后边描述的是你想要干什么,根据你的需要去描述出来然后进行下一步的操作
这个并不是固定的。你还是看书吧。。书上写的比这里回答的人描述的详细。
if和then的语法 如果if和then处在同一行 中间需要用;隔开,如果不在同一行可以不用写
if grep "file " /tmp/tmp.txt ;then 这属于语法格式,这个是固定的。其实一行内多个命令之间都需要用;号隔开。如果不在同一行就不用考虑。就像你在终端输入命令一样,一行一个命令。一行多跳命令需要用;隔开。。也是这个道理。至于!取反。。!属于操作符 举个例子来说 $A = $B 如果结果匹配 执行 then 不匹配执行else $A != $B !=就是不等 !进行取反操作 如果判断结果匹配 执行then 不匹配执行eslse
哇。。说了好多废话。。我还是强烈建议你仔细看书。。
______________________________________________
1)我还是建议你看书,而且是看对书,我说的这些都是书上有的。
关于[]你不应该理解成test语法才需要 test就是[] []就是test
抛开if不讲 test也可以单独使用 比如test xxx 写成 [xxxx]意思是一样的。
至于里边加的参数,就涉及到你的需求 要干什么 要判断字串?整数?表达式?文件?
跟用test 还是用 []并没有太大关系 举个例子 test $? -le 0 和 [ $? -le 0] 意思是一样的
2)要解释if ! grep "file" /tmp/tmp.txt ; then 首先你要明白系统所设置的操作符。比如= 比如+、-、*、/、这些都是操作符,至于! 属于位操作符, 我下班了。有空聊