エラーを追跡できません。

エラーを追跡できません。

私のプログラムを実行すると、次のエラーが発生します。

today.ksh[36]: test: 0403-004 Specify a parameter with this command.
sed: 0602-419 Cannot find or open file /home/tmp/filename.
today.ksh[37]: test: 0403-004 Specify a parameter with this command.
today.ksh[24]: test: 0403-021 A ] character is missing.

しかし、私は次の意味を理解できません。

  • sed:0602-419 0602-419 どういう意味ですか?
  • Today.ksh[37] 37 とはどういう意味ですか?テスト:0403-004とはどういう意味ですか?

    つまり、「Test:0403-004」などの数値範囲はどういう意味ですか? kshでデバッグするときにどのように役立ちますか?

答え1

AIXへようこそ。

IBM オペレーティング・システムの一般的な考え方は、システム・メッセージに識別英数字コードがあることです。メッセージは他の言語に翻訳できますが、コードは同じままです。 IBM文書には、通常、ユーザーがコードを介してこれらのメッセージを検索できるようにするリファレンスマニュアルがあります。

OS/2 および OS/400 では、コードは 3 文字形式を取ります。施設インジケーターと4桁の数字メッセージ番号。 (OS / 2ユーザーは同じ名前を覚えており、コマンドをSYS0002使用してコマンドラインからこれらのコードを見つけることができます。)AIXでは、4ビットオペレーティングシステムの形式を取ります。helphelpmsg要素数字と3桁の数字メッセージ番号

したがって、0403-004は「範囲」ではありません。コンポーネント番号0403メッセージ番号004に対応するメッセージコード。部品0403はKorn Shellです。コンポーネント0602は、UNIXテキスト編集ツールのセットです:、、、viおよび。exedsedawk

はい、AIXにはこれらのコードをすべてリストする大規模なリファレンスマニュアルがあります。

しかし、これは全くではありません。詳細メッセージ処理中。 (逆に、OS / 2ヘルプツールには、SYSコマンドラインに表示されるほとんどのメッセージの詳細な説明と操作があります)。

  • 0403-004: 変数拡張の周りに引用符を入れることを忘れた可能性が高いです。これにより、変数が設定されていないと拡張機能が空になり、誤ったコマンド構文が発生しますtest
  • 0403-021:コマンドで呼び出される場合は、[このコマンドの最後のパラメーターは必要です]。通常、このエラーは]最後の文字を単語自体として扱うことを忘れてしまったために発生します。

追加読書

関連情報