[test@server ~]$ if `df -k &>/dev/null`;then echo 1;else echo 2;fi
1
[test@server ~]$ if ! `df -k &>/dev/null`;then echo 1;else echo 2;fi
2
[test@server ~]$ if ! df -k &>/dev/null;then echo 1;else echo 2;fi
2
[test@server ~]$ if ! df -k;then echo 1;else echo 2;fi
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg_server910-lv_root
51606140 39450392 9534308 81% /
tmpfs 8112300 80 8112220 1% /dev/shm
/dev/sda1 495844 38321 431923 9% /boot
/dev/mapper/vg_server910-lv_home
1862691576 482919076 1285153264 28% /home
172.17.9.50:/home/export/nagios-check
1862691840 482918400 1285153792 28% /mnt/nagiosPoint
172.17.9.50:/home/export/primary-pub-shared-001
1862691840 482918400 1285153792 28% /mnt/1ef241a6-6992-3293-8a5e-b82d58ddbf97
2
[test@server ~]$ if ! `df -k`;then echo 1;else echo 2;fi
-bash: Filesystem: command not found
1
[test@server ~]$
由上可知if是可以直接接命令的,而不需要用``,如果用了``,最好加上&>/dev/null,否则会报错
反引号用法
在执行一条命令时,会先将其中的 ``,或者是$() 中的语句当作命令执行一遍,再将结果加入到原命令中重新执行,例如:
echo `ls`
会先执行 ls 得到xx.sh等,再替换原命令为:
echo xx.sh
最后执行结果为
xx.sh