Ubuntu 16 Server上の/ usr/lib/update-notifier/apt-checkから結果を取得して監視ツールのXML応答を作成しようとしていますが、どういうわけかこのapt-checkの値は私の変数に入るのを拒否します。 シンプルについては、はXML作成部分を省いています。変数でUbuntuの更新結果を返す
#!/bin/bash
APTCHECK="/usr/lib/update-notifier/apt-check"
APTResult="$(${APTCHECK})"
echo "Result is $APTResult"
exit 0
このコードをbash -xで実行すると、結果は端末に返されますが、変数には割り当てられません。私が "コマンド"を "ls -lah"のような単純なものに置き換えると、すべてうまく動作します。
なぜこれが機能しないのかわかりません。誰ですか?
リダイレクトstderr: '2>&1' –
あなたのスクリプトはまったく役に立ちません。ほとんど無害ですが、終了コードは失われます。絶対的な改善は[echo'の無用な使用](http://www.iki.fi/era/unix/award.html#echo)を削除することですが、実際の終了コードを失うことは*唯一の*効果。 – tripleee
配列に割り当てることは 'array =(command>&2)'と似ていますが、配列の順序はあまり予測できないか、または有用ではないでしょうし、配列を取得する構文は新しい複雑さになります。 – tripleee