[問題] -d "dir_path" return 值問題

作者: ilcic (ilcic)   2015-07-28 21:43:30
Dear all,
當我們要知道一個資料夾存不存在時, 假設資料夾為 "/var/run/test"
我們通常會用 [ -d "/var/run/test" ] 來問, 當資料夾存在時,
if [ -d "/var/run/test" ]; then echo "exit"; fi;
會印出 exit 字串, 但想請問為什麼
/root> [ -d "/var/run/test" ]
/root> echo $?
0
用 echo $? 拿 return 值會拿到 0 呢?
作者: bdvstg (bdvstg)   2015-07-28 21:59:00
http://tldp.org/LDP/abs/html/internalvariables.html阿... 我搞錯你想問的了 抱歉
作者: kerwinhui (kezza)   2015-07-28 22:01:00
shell exit status 0就是true,非0是false或error
作者: bdvstg (bdvstg)   2015-07-28 22:10:00
http://www.tldp.org/LDP/abs/html/exit-status.htmlhttp://goo.gl/yIvzmR 看這篇跟上一篇(我也有點驚訝會相反XD)
作者: danny8376 (釣到一隻猴子@_@)   2015-07-28 22:36:00
exit code通常都是非0代表error啊 可以順便代表errno畢竟通常正確就正確 錯誤倒是狀況很多
作者: Jerr (身為老爸老媽嚕..)   2015-07-29 09:41:00
[ ] 是 test(1), 看成是 test 的 exit code 就容易懂了man test而 bash 的 if list 是 list 的 exit code 為 0 時才成立
作者: fourdollars (四元)   2015-07-30 09:30:00
[ -d "/var/run/test" ] && echo "yes" || echo "no"
作者: lspci (awk sed echo)   2015-07-30 22:38:00
[ 才是test,]什麼都不是
作者: danny8376 (釣到一隻猴子@_@)   2015-07-30 22:52:00
[才是test沒錯 但]是[結尾必要參數

Links booklink

Contact Us: admin [ a t ] ucptt.com