OS = Mac OS X。
外壳是bash。
我试图验证在shell脚本中创建目录。但是,我似乎没有得到返回代码。这是shell代码:
#!/bin/bash
rv=$(mkdir lib)
echo "The code = $rv !"
if [ "$rv" == "0" ]
then
echo "created the dir"
else
echo "no can do, compadre."
fi
输出:
mkdir: lib: File exists
The code = !
no can do, compadre.
无论是否创建目录,else
条件始终为真,因为$rv
变量永远不会是" 0"。但它似乎永远不会是任何整数。手册页说
DIAGNOSTICS
The mkdir utility exits 0 on success, and >0 if an error occurs.
Google搜索未成功。任何帮助表示赞赏。
答案 0 :(得分:5)
当你写rv=$(mkdir lib)
时,你将mkdir
的标准输出捕获到rv
,而不是它的返回码。您可以通过阅读$?
变量来访问最后一个命令的返回码,如
mkdir lib
rv=$?
答案 1 :(得分:2)
返回代码为$?
mkdir lib
echo $?
答案 2 :(得分:1)
我不知道你使用的符号是否可行,但我所知道的是命令$?
允许你检索最后一个返回值。
您的代码在我自己的计算机上不起作用,但是这个代码确实如此:
#!/bin/bash
mkdir lib
rv=$?
echo "The code = $rv !"
if [ "$rv" == "0" ]
then
echo "created the dir"
else
echo "no can do, compadre."
fi