私は自動化されたサーバー強化スクリプトを作成する任務を引き受けました。エラーメッセージを文字列として保存し、テキストファイルに追加したいと思います。
次のコマンドを実行するとします。
/sbin/modprobe -n -v hfsplus
私のコンピュータでこれを実行すると、結果は次のようになります。
FATAL: Module hfsplus not found
このエラーメッセージを文字列としてどのように保存できますか?どんな助けでも大変感謝します。ありがとうございます!
答え1
エラーコマンドをリダイレクトすることでこれを行うことができます。
/sbin/modprobe -n -v hfsplus 2> fileName
スクリプトとして
#!/bin/bash
errormessage=$( /sbin/modprobe -n -v hfsplus 2>&1)
echo $errormessage
または
#!/bin/bash
errormessage=`/sbin/modprobe -n -v hfsplus 2>&1 `
echo $errormessage
エラーを追加するには、>>
代わりに使用してください。>
「予期しないトークン「&」付近の構文エラー」エラーを回避するには、2>&1
代わりに使用してください。2> &1
答え2
bashスクリプトに文字列として保存するだけです。
X=`/sbin/modprobe -n -v hfsplus 2>&1`
echo $X
コマンドを実行するとメッセージが表示されるため、少し良くなる可能性があります。
TMP=$(mktemp)
/sbin/modprobe -n -v hfsplus 2>&1 | tee $TMP
OUTPUT=$(cat $TMP)
echo $OUTPUT
rm $TMP
答え3
変数にエラーメッセージを返すのは簡単です。
error=$(/sbin/modprobe -n -v hfsplus 2>&1 1>/dev/null)
echo $error
答え4
ファイルに追加するには、次のようにします。/sbin/modprobe -n -v hfsplus 2>> filename