私はUnixスクリプトの初心者です。誰でも次の行の意味を説明できますか?
BTEQTEMPDELLOGS=$LOGS/${tablename}.DELlog
rm $BTEQTEMPDELLOGS 2>/dev/null 1>/dev/null
答え1
(「削除」)コマンドはrm
ファイルを削除します。削除されるファイルの名前はBTEQTEMPDELLOGS
直接与えられず、変数に与えられます。すべてのエラーメッセージ(2>
)は通常の出力()と同じようにrm
送信(破棄)されます。/dev/null
1>
変数自体は、BTEQTEMPDELLOGS
変数LOGS
、リテラル "/"、および末尾に文字列 ".DELlog"を持つ変数を連結することによって最初の行でtablename
構成されます。
以下は、(入力と)出力リダイレクトのドキュメントです。GNU bash マニュアル: リダイレクト。
あなたの例では、入力ではなく出力のみがリダイレクトされます。 1>
発生した一般メッセージrm
(通常はありません)をリダイレクトし、2>
エラーメッセージ(ファイルが見つかりませんなど)のみをリダイレクトします。
以下は、これらの数字の詳細です(プログラマーの観点の「ファイルハンドル」)。stdin(0)、stdout(1)、stderr(2) プログラムの入出力。
関連文書は次のとおりです/dev/null
。Wikipedia:NULLデバイス