• ベストアンサー

シェル(sh)で実行コマンドを標準出力するには

kshでコマンドを実行して結果をファイルにリダイレクトしています。 結果のみファイルに出力され、実行したコマンドを確認することができません。 実行コマンドも一緒にファイルに出力する方法がありましたら教えてください。 なお、実行コマンドをechoするってのはなしで。 多量のコマンドを実行する場合にめんどくさいので。

質問者が選んだベストアンサー

  • ベストアンサー
  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.2

ksh -x 実行コマンド > ファイル 2>&1 または ksh -x 実行コマンド 2>&1| tee ファイル

参考URL:
http://x68000.q-e-d.net/~68user/unix/pickup?tee
palayo
質問者

お礼

aaa.kshを実行するスクリプトを bbb.kshとして、 ksh -x bbb.ksh > file 2>&1 としたら意図した結果が得られました。 ありがとうございました。

palayo
質問者

補足

近いですが、あまりにも全部出ちゃうので厳しい。 ksh -x aaa.ksh > file 2>&1 だとaaa.kshの中の実行コマンドがすべて出力されちゃう。 aaa.ksh > file 2>&1 としたときに、aaa.kshのみがfileに出力されて、 aaa.kshの実行結果がfileに出力される、 というようにはできますか?

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

man ksh でマニュアルが出るからよく読む。 他にもコマンドで困ったことがあったら、とりあえず man とヘルプメッセージくらいは読む 英語を読みたくない、とか贅沢なこと言うのなら、ネットで検索すれば和訳文が見付かることもある

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

see ksh(1).

関連するQ&A

  • Kシェルのリダイレクト

    Kシェルのリダイレクト シェル初心者で申し訳ございませんが、ご教授いただけたら幸いです。 やりたいこと  xxx.kshの実行ログを出力したい。 出力したいログは、以下コマンド実行時に標準出力されるログをファイルへ落としたい。 尚、実際の実行コマンドは、ksh -xは入力しません。 $ ksh -x ./xxx.ksh 上記コマンドを実行すると、詳細なログが表示されるのですが、ファイルへ落としたいと思います。 分かりづらいかも知れませんが、宜しくお願い致します。

  • コマンド実行結果のファイル出力

    systeminfo echo list volume | diskpart のコマンドを実行結果をテキストファイルに出力したいのですが、 echo list volume | diskpart > "c:\status.txt" systeminfo >> "c:\status.txt" としてバッチで実行しても、何も出力されていないません。 コマンドを画面で入力すると、画面に表示されます。 どうしたらよいか教えてください。

  • UNIX:シェルをshからkshへ替えられない

    下記の方法で、shからkshへ切り替えるという設問ですが、shのままkshになりません。 1)echoコマンドで、export ENV=$HOME/Env/ksh_envを.profileへ追加 2)Envディレクトリ作成後、ksh_envへ下記を追加   Set –o noclobber, set-o ignoreeof, set –o vi 3) chmodコマンドで、ksh_envを777変更 4)echoコマンドで、$SHELL=/bin/ksh 5) echoコマンドで、$SHELLを呼ぶと、kshになっている。 何を間違えているか教えて頂けますか? 宜しくお願いします。

  • AIX上で実行するKshについてですが、

    AIX上で実行するKshについてですが、 echoでファイルにリダイレクトした時の戻り値を「$?」で取得する事は可能でしょうか? 実行環境が無い為、確認する事ができません。 申し訳ありませんが、ご教授願います。

  • 標準出力とリダイレクトを同時に実行

    標準出力の結果をファイルに保存するにはリダイレクトを使うと思いますが、同時に標準出力にも表示したいです。 同時に、リダイレクトの「>>」のように、追記していくようにしたいです。 そのような場合、 http://blog.goo.ne.jp/minimal_room/e/26b4d965cd67ac5abfc4ca024e69501f によれば、teeコマンドを使うと良いそうなのですが、 ./a.out | tee log.txt のようにすると、標準出力されず、上手くいきませんでした。 どのようなコマンドを打ったら良いか教えて下さい。

  • 別のサーバーでコマンドを実行するには

    echo exec('whoami'); という風にexecでコマンドを実行して戻り値を表示するプログラムがあります、これを別のサーバーで実行して戻り値を出力したいのですが方法はないでしょうか? Aサーバー(コマンド) → Bサーバー(実行) Aサーバー(出力) ← Bサーバー(戻り値) といった具合です、postかgetで置くってリダイレクトするような方法しかないのでしょうか?

    • ベストアンサー
    • PHP
  • Windows 98系OSでのコマンドラインのリダイレクトについて

    Windows 98又はMeのコマンドラインのリダイレクトについて教えてください。 ◎やりたい事 Windows 98又はMeのコマンドラインの実行結果を正常・異常問わずにログ出力する。 ◎ためした事 ・「echo テスト > log.txt 2>&1」を実行 ⇒Windows 98又はMeで同じ事を実行すると'&1'というファイルができてその中身を見ると正常時のログしか出力されていません。また、log.txtは出力されていません。 ・「echo テスト > log.txt」を実行 ⇒実行結果が正常の場合は出力されるのですが異常の場合はコマンド画面に出力されてlog.txtに出力されません。 いろいろ検索したのですが解決に至っておりません。 よろしくお願いします。

  • シェルスクリプトで出力と処理の同時実行

    シェルスクリプトで出力コマンドを実行し、キーワードで 抽出してその行数で分岐させようと考えています。 (出力コマンドはミドルウェアのコマンドでアプリケーションの 状態を表示するコマンドです) 出力コマンドの結果を出力させたいのですが下記のような 流れで行おうとしています。 いちいちファイルに保存せずに出力と、行数の変数への格納を 一度でできる方法はないでしょうか。 出力コマンド | grep [キーワード] | tee tmp/file hensuu=wc -l tmp/file case $hensuu in ・・・ よろしくお願いします。

  • コマンドプロンプトの出力

    コマンドプロンプトで実行した結果をファイル出力または印刷する方法はありますでしょうか?

  • 実行中のコマンドを、ログアウト後もバックグラウンドで実行させる方法(ksh)

    ksh環境において、実行中のコマンドをログアウトしてもそのまま実行させる方法を教えてください。 ctrl+zでサスペンドにし、jobsでjob番号を確認してbg %<job番号>でバックグラウンドにするのはできましたが、exitでログアウトしターミナルを抜けるとjobが無くなってしまいます。 bashならdisownというコマンドがあるそうなのでdisown %<job番号>でいけるのではないかと思うのですが、kshではdisownに相当するようなものがあるのでしょうか? コマンド実行前なら『nohup <コマンド> &』でできるのは確認済みです。