• ベストアンサー
  • 困ってます

Kシェルのリダイレクト

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

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数1247
  • ありがとう数9

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

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

残したいログは、ksh -x として実行したときのログでいいのですね。 ksh -xを入力しない、っていうのは ./xxx.sh と実行する、ということでいいですね。 まず、xxx.kshの一行目を #!/bin/ksh -x と書けば ksh -x ./xxx.ksh と入力したのと同等になります。 パスは実際の環境にあわせてください。 -xは標準エラー出力に出力されるので、リダイレクトでファイルに保存します。 Bsh系だと ./xxx.ksh 2>& logfile ./xxx.ksh中のコマンドの中にエラー出力するものがあったら、それも保存されてしまいますが。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • シェルのリダイレクトとパイプについて

    シェルのリダイレクトとパイプについての質問です. リダイレクトでコマンドの標準出力をファイルに指定した後に, パイプを置いて,もう一つコマンドを並べたとき, 後の方のコマンドの標準入力はどうなるのでしょうか? 例えば, ls >outfile |cat ならば, catの標準入力には,何も入ってこないと思うのですが, これを実行すると,lsの結果がoutfileに書き込まれ, 次のプロンプトが表示されます. 普通,catを引数なしで実行すると, EOFが入力されるまで,入力待ちになると思うのですが, こうならないのは,シェルがcatの標準入力にEOFを入力したからだと 考えていいのでしょうか. よろしくお願いします. (質問の意味が分かりにくければご指摘下さい.)

  • シェルでリダイレクトができない

    bashを使っているのですが、 シェルの中で、 ./実行ファイル hoge1 hoge2 > hoge.txt という感じで二つの引数を使って動作する実行ファイルの標準出力を、リダイレクトしたいです。 ですが、テキストに出力をリダイレクトできません。 こんな感じの書き方でリダイレクトできないもんなんでしょうか? 教えて欲しいです。 よろしくお願いします。

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

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

その他の回答 (1)

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

えっと.... ksh -x ./xxx.ksh を実行したときに標準出力に出てくるものをファイルに落とすなら ksh -x ./xxx.ksh > hoge でいいと思うんだけど.... 「尚、実際の実行コマンドは、ksh -xは入力しません」の意味がよくわからん.

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • シェルによりデータの並べ替え方法

    こんにちは、 機種:Linux 下記のように、データのシェルによりデータの並び方を ご教授をお願いします。 入力ファイル内容 G01 K01,K02,K03,K04 G02 K01,K03 G03 K02,K04 出力ファイル K01 G01,G02 K02 G01,G03 K03 G01,G02 K04 G01,G03 for コマンドを使ってみましたが、できなかった。 csh, ksh, awkにより、作成方法はご存知の方が いらっしゃいましたら、教えて頂けないでしょうか 以上

  • kシェルのリダイレクトについて

    kシェルを用いてツールを作っています。 このツールを使用する際には、全ての出力をファイルに出力して 処理の最後に出力ファイルをcatで表示したいと考えております。 出力は、exec 2>&1 ~.logでファイル出力しますが、 そのファイルをcatすると、catの結果もファイル出力になってしまいます。 catを標準出力するにはどうしたら宜しいでしょうか?

  • bashでfold整形後のリダイレクトについて

    bashのスクリプトについて質問させてください。 現在、サーバプログラムexecの起動とログ出力を以下のコマンドで実行しております。 exec > server.log しかし、execの出力行の中に、server.logをviで開くことができないような、文字数の多い行が出力されるようになったため 整形してリダイレクトしたいと考えております。そこで exec | fold -w 256 としたところ、exec起動時のログが整形されて正しく標準出力されました。 しかし、これを下記のようにリダイレクトしてファイル出力した場合、起動時のログが尻切れとなり、最後まで出力されませんでした。 exec | fold -w 256 > server.log 起動後にサーバに接続し、以降のサーバーログを出力させると、尻切れから先が出力されはしたのですが、 現在、起動後にserver.logを確認すると最終行の「server startup OK」という文字が確認できない、という状況になっております。 リダイレクトされたファイルにも、標準出力と同期して最終文字まで出力させる方法はございますでしょうか? よろしくお願いいたします。

  • プログラミングについて

    ファイルを読み込んで標準出力し、ファイルの最後になったらプログラムを終了するプログラムを作ったのですが動作の確認ができません。シェルのリダイレクトを使い『& ./a.out < afo.c』というコマンドを入力して確認するみたいなのですが、シェルのリダイレクションのこのコマンドはどのように使ったらいいのですか?

  • Cシェルについて

    Cシェルについて #! /bin/csh ##! /bin/csh -vx setenv NOHUP '/usr/bin/nohup' set AAA_CSH = $NOHUP' XXX.sh file.txt &' ($AAA_CSH >> /dev/null) >>& err.log シェルスクリプトを作成して上記のとおりnohupでXXX.shを実行するように記述します。 エラーがあった場合、err.logに出力するように作成したつもりなのですが、 XXX.shがなかったとき、 「/usr/bin/nohup: XXX.sh:そのようなファイルまたはディレクトリはありません。」 と標準出力されてしまいます。 このエラーメッセージをerr.logに記述するようにしたいのですが、 どうしたらよいでしょうか? よろしくお願いいたします。

  • perlからsystemコマンド呼ばれる時のシェルについて

    HP-UX/perl4 で作成したスクリプトを、Linux(Red Hat)/perl5 へ移植するに当たって、system関数の動作が異なり困っています。 HP-UX では ksh をシェルとして使用していたため、perl からのsysytem関数で実行するsystemコマンドも、kshで動作するものを使っていました。Linuxでもログインシェルをkshに設定しました。 ところが、HP-UXで使っていたprintコマンドが使用できず、以下のエラーメッセージが出ます。 sh: print: command not found シェルはkshを指定していても、perlからsystem関数やバッククウォート`` でシステムコマンドを実行するときは、shが使われるようなのです。 perl内の記述は以下のとおりです。 system("print 'a'"); "print"の前に"ksh "をつけたり、"print"を"echo"に変えると、正しく動作します。 移植するperlの本数が多いのと、print以外にもこの問題が起きるかもしれませんので、できれば perl 内からのシステムコマンド実行時にもログインシェルとおなじ ksh で動くようにしたいのですが、どのようにすればよいのでしょうか? よろしくお願いいたします。

  • AIX上でのアカウント操作ログ

    AIX v5.3上で実行されたユーザの追加、削除、アカウントロック及びパスワードリセットをログ等から一覧でレポートに出力したいと言う要望をお客様より受けているのですが、具体的な実現方法がわかりません。 上記動作のログは標準のsyslogで出力されるものでしょうか? もしくは、何らかのコマンドやシェル等の起動結果をリダイレクトしてログに落とす必要があるのでしょうか? AIXに触れるのが初めてなもので、質問させて頂きました。 ユーザアカウント操作に対するログの出力先をご存知でしたら、教えてください。 宜しくお願い申し上げます。

  • UNIXシェルのデバッグ

    サーバーを更改したので業務システムを丸ごと 新しいサーバーへコピーしてきました。メニューのシェルが数十個 あるのですが、恐らくそのまま動くとは思うのですが、一応 シェルからシェルへの移動(遷移っていうんでしょうか)くらいは 確認しようと思っています。 そのままシェルを順番に動かす以外の手法は何かありませんでしょうか? sh -xで動かせば詳細な情報をログとして残せますが、シェル内のコマンドも 実行してしまうので時間がかかります。シェル内のコマンドを実行させないで すむ手法があればご教授ください。

  • 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に出力されません。 いろいろ検索したのですが解決に至っておりません。 よろしくお願いします。

  • なぜLinuxでKornシェルが使えるのでしょうか?

    Linux初心者です。 シェルについてわからないことがあり、質問させていただきます。 Linux(Red Hatを使っています)の /bin/shと/bin/cshは、それぞれ/bin/bash、/bin/tcshのシンボリックリンクファイル、 なのに対して、なぜkshだけは/bin/kshそのままなのでしょうか? また、KornシェルはAT&T社が開発したものだそうですが、 これはLinuxで使う際にライセンスの問題に触れないのでしょうか? よろしくお願いいたします。