シェルスクリプトで使用すると、出口に出力はありません。

シェルスクリプトで使用すると、出口に出力はありません。

シェルスクリプトには次のものがあります

fulloutput="<pre>$(df -h /;sudo shutdown -r +1 )</pre>"

後でスクリプトはこの変数をエコーし​​ます(sendmailにパイプされていますが、ここでは関係ありません)、閉じるのではなくdfコマンドの出力のみを取得します。

私はせずに試してみましたsudo、そして以下のようにコマンドを分割してみました...

fulloutput="<pre>$(df -h /) $(sudo shutdown -r +1 )</pre>"

ただし、まだコマンドの出力のみを取得しますdf

shutdownこれは大きな問題ではありませんが、スクリプトの対応する部分が正常に実行されたことを示す表示で出力を取得することをお勧めします。

答え1

ユーザーコマンドはキャプチャを置き換えますstdout。終了メッセージが記録されることがありますstderr

キャプチャされるようにリダイレクトするには、stderr次を追加します。stdout2>&1

$(df -h /; sudo shutdown -r +1 2>&1)

関連情報