このトピックについて多くのスレッドを読みましたが、どのソリューションも私には役に立ちませんでした。
私は次のことをしようとしています:
RELEASE_COMMAND_OUTPUT=$(exec ~/temp/execs/github-release release --user patick --repo $REPO_NAME --tag $RELEASE_VERSION --name $RELEASE_VERSION --description "$DESC")
ただし、出力は変数./github-release
に保存されませんRELEASE_COMMAND_OUTPUT
。
私はその概念を知っています。コマンドの置き換えしかし、私が試した解決策のどれも効果がありませんでした。私は何が間違っていましたか?
答え1
あなたの質問の説明で説明したように、変数RELEASE_COMMAND_OUTPUT
はSTDOUT
(標準出力)あなたの命令ではありませんが、STDERR
(標準エラー)、これがあなたの場合のようです。
コマンドの出力が疑わしい場合は、次を使用できます。プロセスの交換到着STDERR
赤で表示しておきます次の例に示すように:
command 2> >(while read line; do echo -e "\e[01;31m$line\e[0m" >&2; done)
これはリダイレクト(2>
部分)ブロックへの入力としてSTDERR
端子に赤で印刷されます。command
while
逆にしてSTDOUT
赤で表示することもできます。
command | grep .
grepは以下でのみ動作するためSTDOUT
ノート: 一部のシステムでは必要な場合があります。色を有効にするgrepでフラグを使用してください--color=auto
。 Macos と Linux では通常、デフォルトで有効になっています。