2011-01-20 8 views
0

私は、サーバに接続する/ app/fao ....にあるabs.kshという名前のkshスクリプトを実行しています しかし、サーバは "/usr/binに存在する "ksh"を参照してください。 私はabs.kshでkshというスクリプトを呼びません(申し訳ありませんが、コードを貼り付けることはできません)。/usr/binにある別のスクリプトを自動的に呼び出すKshスクリプト

また、これは、スクリプトがデバッグモードで実行されている場合にのみ発生します。 非デバッグモードでは正常に動作します。

誰でも私にここで起こっていることのヒントを教えてもらえますか?

+0

Kornシェルスクリプトを実行するには、実行するにはkshのインスタンスが必要です。デバッグモードと非デバッグモードでスクリプトを呼び出す方法を正確に表示できますか?あなたのabs.kshスクリプトの最初の行に何がありますか? –

+0

私はちょうどデバッグモードでそれを実行するために-xオプションを使用します... –

+0

ちょうど私にちょうど "ksh"は何ですか?その間にコードを取得しようとします.....あらかじめありがとうございます –

答えて

1

標準的な "古典的な" Unix環境では、複数のシェルが存在する可能性があります。例えば。 'sh'はオリジナルのBourneシェル、 'ksh'はKornシェル、cshはCシェル、bash、tcshなどです。ユーザーログインは、ログインごとにデフォルトシェルが設定されます。

#!実行可能なスクリプトの開始時に、&を解釈し、後続のテキストを '#!'に続くプログラムの名前で実行する命令があります。

など。 perlでこれを実行してください

#!/bin/perl 

<.. perl stuff ..> 

だから#!/ usr/bin/ksh - その場所のコマンドインタープリタ(シェル)でスクリプトを実行します。

詳細情報が必要です。デバッグモードでの実行方法私。 'ksh -x ...'または 'sh -x'とタイプしていますか?もしそうなら、あなたの検索パス上のどこにあるのでしょうか?例えば。 'whence ksh' - 多分あなたはデバッグモードで別のシェルで走っています。

これはどちらですか?

関連する問題