看板 Linux 關於我們 聯絡資訊
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 呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.177.224.74 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1438091013.A.A1A.html
bdvstg: 阿... 我搞錯你想問的了 抱歉 07/28 22:01
kerwinhui: shell exit status 0就是true,非0是false或error 07/28 22:01
bdvstg: http://goo.gl/yIvzmR 看這篇跟上一篇 07/28 22:11
bdvstg: (我也有點驚訝會相反XD) 07/28 22:11
danny8376: exit code通常都是非0代表error啊 可以順便代表errno 07/28 22:36
danny8376: 畢竟通常正確就正確 錯誤倒是狀況很多 07/28 22:37
Jerr: [ ] 是 test(1), 看成是 test 的 exit code 就容易懂了 07/29 09:41
Jerr: man test 07/29 09:41
Jerr: 而 bash 的 if list 是 list 的 exit code 為 0 時才成立 07/29 09:47
fourdollars: [ -d "/var/run/test" ] && echo "yes" || echo "no" 07/30 09:30
lspci: [ 才是test,]什麼都不是 07/30 22:38
danny8376: [才是test沒錯 但]是[結尾必要參數 07/30 22:52