Bash:如何测试mkdir命令的失败?
我正在编写一个bash脚本,希望在其中执行健壮的错误检查 使其失效的Bash:如何测试mkdir命令的失败?,bash,unit-testing,exit-code,Bash,Unit Testing,Exit Code,我正在编写一个bash脚本,希望在其中执行健壮的错误检查 使其失效的mv退出状态代码很容易模拟失效。你所要做的就是移动一个不存在的文件,但它失败了 然而,使用mkdir我想模拟它失败。mkdir可能由于各种原因、磁盘问题或权限不足而失败,但不确定如何模拟失败。mkdir将在目录已经存在的情况下失败(除非您使用-p),并返回一个错误代码1(在我的系统上),因此请先创建目录,在您自己的系统上进行测试。(尽管我认为这是所有shell的标准配置。) 或者,将父目录设置为只读。只需使用 mkdir you
mv
退出状态代码很容易模拟失效。你所要做的就是移动一个不存在的文件,但它失败了
然而,使用
mkdir
我想模拟它失败。mkdir可能由于各种原因、磁盘问题或权限不足而失败,但不确定如何模拟失败。mkdir将在目录已经存在的情况下失败(除非您使用-p),并返回一个错误代码1
(在我的系统上),因此请先创建目录,在您自己的系统上进行测试。(尽管我认为这是所有shell的标准配置。)
或者,将父目录设置为只读。只需使用
mkdir your_directory/
if [ $? -ne 0 ] ; then
echo "fatal"
else
echo "success"
fi
其中,$?
表示上次执行的命令的退出代码
要创建父目录,当这些目录不存在时,请在脚本中运行
mkdir-p parent\u directory/your\u directory/
,您还可以检查新目录
mkdir -p new_dir ;
if [ -d new_dir ]
cd new_dir && ...... anything else you want .
else
echo "error in directory creation ";
exit 2 ;
fi
或
如果您很懒,在脚本开头设置一个简单的
set-e
就足够了。通常,您只想打印一个错误,然后在出现问题时终止
不是你想要的,也许是你想要的
if ! mkdir your_directory 2>/dev/null; then
print_error
exit
fi
mkdir your_directory 2>/dev/null || { print_error; exit; }