我正在编写一个bash脚本,并希望在其中执行强大的错误检查。
mv
退出状态代码使其失败很容易模拟失败。您所要做的就是移动一个不存在的文件,但它失败了。
然而,对于mkdir
,我想模拟它失败。 mkdir可能由于多种原因,磁盘问题或权限不足而失败,但不确定如何模拟故障。
答案 0 :(得分:6)
只需使用
mkdir your_directory/
if [ $? -ne 0 ] ; then
echo "fatal"
else
echo "success"
fi
其中$?
代表上一个执行命令的退出代码。
要创建父目录,如果这些目录不存在,请运行mkdir -p parent_directory/your_directory/
答案 1 :(得分:5)
if ! mkdir your_directory 2>/dev/null; then
print_error
exit
fi
或
mkdir your_directory 2>/dev/null || { print_error; exit; }
答案 2 :(得分:3)
1
(在我的系统上),因此首先创建目录以在您自己的系统上测试它。 (虽然我认为这是所有炮弹的标准。)
或者,将父目录设为只读。
答案 3 :(得分:2)
mkdir -p new_dir ;
if [ -d new_dir ]
cd new_dir && ...... anything else you want .
else
echo "error in directory creation ";
exit 2 ;
fi
答案 4 :(得分:0)
如果你很懒,你脚本开头的简单set -e
就足够了。通常,您只想打印错误,然后在出现问题时终止。
不完全是你要求的,但也许你想要的。