[解決済み] 標準出力と標準エラー出力を異なる変数に取り込む
2023-03-18 20:01:38
質問
標準出力と標準エラー出力を
異なる変数
に格納することはできますか? 今、私はこれを、stdoutを
out
で、標準エラーは
err
を実行するとき
some_command
を実行したとき、しかし、私は
を実行するとき、一時ファイルを回避したいです。
error_file=$(mktemp)
out=$(some_command 2>$error_file)
err=$(< $error_file)
rm $error_file
どのように解決するのですか?
さて、少し醜くなりましたが、ここに解決策があります。
unset t_std t_err
eval "$( (echo std; echo err >&2) \
2> >(readarray -t t_err; typeset -p t_err) \
> >(readarray -t t_std; typeset -p t_std) )"
ここで
(echo std; echo err >&2)
は実際のコマンドに置き換える必要があります。出力される
標準出力
の出力は、配列
$t_std
に一行ずつ保存され、改行が省略されます (
-t
) と
標準エラー
を
$t_err
.
配列が嫌いなら
unset t_std t_err
eval "$( (echo std; echo err >&2 ) \
2> >(t_err=$(cat); typeset -p t_err) \
> >(t_std=$(cat); typeset -p t_std) )"
の挙動をほぼ模倣しています。
var=$(cmd)
の値を除いて
$?
の値を除いては、最後の修正になります。
unset t_std t_err t_ret
eval "$( (echo std; echo err >&2; exit 2 ) \
2> >(t_err=$(cat); typeset -p t_err) \
> >(t_std=$(cat); typeset -p t_std); t_ret=$?; typeset -p t_ret )"
ここで
$?
が保存され
$t_ret
Debian wheezy で GNU バージョン 4.2.37(1)-release (i486-pc-linux-gnu) .
関連
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] 標準エラー出力に出力するエコー
-
[解決済み] 出力をファイルや標準出力にリダイレクトする方法
-
[解決済み] シェルスクリプトでブール変数を宣言して使用するにはどうすればよいですか?
-
[解決済み] 標準出力ではなく標準エラー出力にパイプを通すにはどうしたらいいですか?
-
[解決済み] Windowsのcmdの標準出力と標準エラー出力を1つのファイルにリダイレクトする
-
[解決済み] wget を使って任意のファイルを含むディレクトリを再帰的に取得する
-
[解決済み】Bashでファイル名と拡張子を抽出する。
-
[解決済み】bashでstdoutとstderrの両方をパイピングする?
-
[解決済み] グレースフル・シャットダウンプロセスのシグナルはどのような順番で送ればよいのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】標準誤差を変数に格納する方法
-
[解決済み] bashで関数内のグローバル変数を変更する方法は?
-
[解決済み] bashのループリストで空白をエスケープするには?
-
[解決済み] Makefileでシェルコマンドを使用する方法
-
[解決済み] Bashで$PATH変数からパスを削除する最もエレガントな方法は何ですか?
-
[解決済み] bash で文字列をエスケープするコマンド
-
[解決済み] ディレクトリ内のファイルに対して、ファイル名のみ(パスなし)をエコーします。
-
[解決済み] bashのifブロックの中でboolean変数を評価する方法は?重複
-
[解決済み] スペースで区切られた引数の受け渡し (bash) スクリプト
-
[解決済み] bashスクリプトの実行中に出力を強制的にファイルに出力する。