为什么没有来自mkdir的返回代码?

Mad*_*nan 0 macos bash shell

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搜索未成功.任何帮助表示赞赏.

Ism*_*awi 5

当你写作时rv=$(mkdir lib),你正在捕获mkdirstdout rv,而不是它的返回代码.您可以通过读取$?变量来访问最后一个命令的返回码,如

mkdir lib
rv=$?
Run Code Online (Sandbox Code Playgroud)