linux命令返回值的妙用


  • 什么是返回值

在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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM