mkdir -p $FINAL_BACKUP_DIR
私はstderr通信を取得します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;
私は次のことを試してみます:
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;
しかし、このソリューションは2つの点で私には適していません。早く作っtest1
た時test1=0
なのかな。
Ubuntu 14.04を使用してください。
答え1
/dev/null
「物を捨てる」ための標準装置です。
だから
some_command 2> /dev/null
some_command
からにエラーを送信します/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
追加の文字がすべて必要なわけではありません;
。 :-)
編集する:
また、エラーを出力して変数に結果をキャプチャし、変数が空であるかどうかをテストすることもできます。これにより、ユーザーに理由を知らせることができます。
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
答え2
努力する
if ! mkdir -p $FINAL_BACKUP_DIR > ${test1} 2>&1
then
logger -t $LOGGER_TAG "Cannot create backup directory in $FINAL_BACKUP_DIR. Backup canceling. $(< ${test1})"
exit 1;
fi;
どこ
> ${test1}
出力リダイレクト(標準出力)2>&1
bashにstderrとstdoutをマージするように指示します。$(< $test1)
ファイル内容を読む${test1}
- 削除する必要があります
${test1}
- Ubuntu 15.Xでテストされており、効果的です。
${test1}