我试图得到标准差,从通信mkdir -p $FINAL_BACKUP_DIR
和消息发送我们的logger
。
它使日志更完整,例如用户将知道他没有权限或$FINAL_BACKUP_DIR
不存在。
if ! mkdir -p $FINAL_BACKUP_DIR; then
logger -t $LOGGER_TAG "Cannot create backup directory in $FINAL_BACKUP_DIR. Standard error communicate. Backup canceling." 1>&2
exit 1;
fi;
Run Code Online (Sandbox Code Playgroud)
我尝试这样的事情:
if ! mkdir -p $FINAL_BACKUP_DIR 2>> ${test1}; then
logger -t $LOGGER_TAG "Cannot create backup directory in $FINAL_BACKUP_DIR. Backup canceling. $test1" 1>&2
exit 1;
fi;
Run Code Online (Sandbox Code Playgroud)
但是这个解决方案在两个方面对我不起作用。当我test1
更早test1=0
或没有创建时。
我使用 Ubuntu 14.04。
/dev/null
是“扔掉东西”的标准装置。
所以
some_command 2> /dev/null
Run Code Online (Sandbox Code Playgroud)
将从some_command
to发送错误/dev/null
- 即丢弃错误。
因此:
if ! mkdir -p $FINAL_BACKUP_DIR 2> /dev/null
then
logger -t $LOGGER_TAG "Cannot create backup directory in $FINAL_BACKUP_DIR. Backup canceling."
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
请注意,您也不需要所有这些额外的;
字符:-)
编辑:
您还可以将错误直接输出并捕获变量中的结果并测试该变量是否为空。这样你就可以向用户报告原因
result=$(mkdir -p $FINAL_BACKUP_DIR 2>&1)
if [ -n "$result" ]
then
logger -t $LOGGER_TAG "Cannot create backup directory in $FINAL_BACKUP_DIR. Backup canceling: $result"
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11200 次 |
最近记录: |