OS = Mac OS X.Shell
是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
Run Code Online (Sandbox Code Playgroud)
并输出:
mkdir: lib: File exists
The code = !
no can do, compadre.
Run Code Online (Sandbox Code Playgroud)
无论是否创建目录,else条件始终为true,因为$rv变量永远不会为"0".但它似乎永远不是任何整数.手册页说
DIAGNOSTICS
The mkdir utility exits 0 on success, and >0 if an error occurs.
Run Code Online (Sandbox Code Playgroud)
Google搜索未成功.任何帮助表示赞赏.
当你写作时rv=$(mkdir lib),你正在捕获mkdirstdout rv,而不是它的返回代码.您可以通过读取$?变量来访问最后一个命令的返回码,如
mkdir lib
rv=$?
Run Code Online (Sandbox Code Playgroud)