我有一个将写入输出文件的bash程序.此文件可能存在也可能不存在,但脚本必须检查权限并尽早失败.我无法找到一种优雅的方式来实现这一目标.这是我尝试过的.
set +e touch $file set -e if [ $? -ne 0 ]; then exit;fi
我继续set -e
这个脚本,所以如果任何一行都有错误,它就会失败.有没有更简单的方法来执行上述脚本?
Sor*_*gal 32
为什么复杂的事情?
file=exists_and_writeable
if [ ! -e "$file" ] ; then
touch "$file"
fi
if [ ! -w "$file" ] ; then
echo cannot write to $file
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
或者,更简洁,
( [ -e "$file" ] || touch "$file" ) && [ ! -w "$file" ] && echo cannot write to $file && exit 1
Run Code Online (Sandbox Code Playgroud)
Sie*_*geX 23
而不是检查$?
不同的行,请立即检查返回值,如下所示:
touch file || exit
Run Code Online (Sandbox Code Playgroud)
只要您umask
不限制写位被设置,您就可以依赖于返回值touch
归档时间: |
|
查看次数: |
74424 次 |
最近记录: |