タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

unixとshに関するmyokoymのブックマーク (2)

  • パイプを使いつつ、簡単に終了コードを取得したかったが・・ - yamadamn’s blog

    command 2>&1 | tee command.log とかやって、command の標準出力を画面上でも確認しながら、ログにも出力したい、というケースは割とあると思います。 ただ、command の実行が成功したかどうかも知りたい。単純にパイプでつなげてしまうと、一番最後のコマンド(この場合は tee)の終了コードしか取れないんだよね。 まあ、でも簡単に取得できるよね、と思ったら、意外と試行錯誤してしまったという話。 前提知識 コマンドをグルーピングするためには、丸括弧「()」と中括弧「{}」が利用できます。 丸括弧でグルーピングしたものは、サブシェル(子プロセス)で実行される 中括弧でグルーピングしたものは、カレントシェル(自プロセス)で実行される という違いがあります。例えば、 hoge=0 (hoge=1) echo $hoge # ->「0」が出力される。(子プロセスで変更

    パイプを使いつつ、簡単に終了コードを取得したかったが・・ - yamadamn’s blog
  • Mitzyuki's Blog :: posix shell で標準入力同士の <i>diff</i> (1) を実現する方法

    posix shell で標準入力同士の diff (1) を実現する方法 コマンド command1 の出力結果と コマンド command2 の出力結果を diff (1) で比較したい場合、 一番手軽なのはそれぞれの出力を一時ファイルに出力して比較する方法である。 $ command1 > ${TMP:-/tmp}/output1 $ command2 > ${TMP:-/tmp}/output2 $ diff ${TMP:-/tmp}/output1 ${TMP:-/tmp}/output2 : $ rm ${TMP:-/tmp}/output1 ${TMP:-/tmp}/output2 しかし、この方法では一時ファイルを作成するので 処理効率が悪く一時ファイルの削除など後処理をする必要がある。 例えば bash (1) の場合は以下の様にする事で簡単に比較できる。 $ diff

  • 1