- 什么是返回值
在shell終端中,你所輸入的一切命令其實都有返回值,而這個返回值默認保存在"$?"中,舉例看一下
[root@localhost ~]# touch 123 [root@localhost ~]# echo $? 0 [root@localhost ~]# touchh 123 -bash: touchh: command not found [root@localhost ~]# echo $? 127 [root@localhost ~]# cat test.txt 已設置grub密碼,符合要求 [root@localhost ~]# echo $? 0 [root@localhost ~]# cat test.txt123 cat: test.txt123: No such file or directory [root@localhost ~]# echo $? 1
從以上現象中可以看出, 如果上一條命令成功執行那么$?的值為0,而如果不成功$?的值就是非0。
- 返回值的好處:
在編寫shell腳本的時候我們要確認上一條命令有沒有成功執行,就通過$?獲取返回值就可以很好的判斷了。
再舉個例子:
#! /bin/bash grup_pwd=`cat /etc/grub.conf | grep -v ^# | grep password 2> /dev/null` if [ $? -eq 0 ];then echo " [ √ ] 已設置grub密碼,符合要求" else echo " [ X ] 沒有設置grub密碼,不符合要求,建議設置grub密碼" fi