Bash スクリプト内の「at」コマンドの結果を取得しようとしています。コマンド出力をキャプチャするさまざまな方法は機能していないようですが、それがコマンドのパイプなのか他の何かなのかはわかりません。
echo $cmd | at $deployat
出力を生成します
job 42 at 2014-04-03 12:00
そして、私は仕事が設定された時間に到達しようとしています。
しかし、私は次のようなものを期待していました
v=$($cmd | at $deployat)
echo $v
うまくいくか、または
v=$(echo $cmd | at $deployat)
echo $v
または
v=`$cmd | at $deployat`
echo $v
しかし、それらはすべてスクリプトをハングさせたままにし、何らかの入力を待っているように見えます。
次のような変数になるようにこれを行う適切な方法は何ですか:
2014-04-03 12:00
============================
編集:
考えられる複雑さの 1 つは、$cmd にフラグがあることです。
ls -l
例えば。
展開されたコマンドは次のようになります。
echo ls -l | at noon tomorrow
解決:
v=$(echo $cmd | at $deployat 2>&1)
echo $v