[问题] -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