web-dev-qa-db-ja.com

-ksh:revenue_ext.ksh:見つかりません[そのようなファイルまたはディレクトリはありません]

Kshスクリプトを実行しようとすると、同じnot found [No such file or directory]エラーが発生します。 PATHに関するヒントを読み、./を使用してスクリプトを実行する here および here の投稿を試してみましたが、うまくいきませんでした。スクリプトは実行しようとしているディレクトリの下に存在し、完全な権限を持っていますが、直接または./を使用して実行すると同じエラーが発生します。スクリプトの最初の行にも#!/usr/bin/kshがあります

エラーメッセージは以下のようなものです:

-ksh: revenue_ext.ksh: not found [No such file or directory]

ただし、同じディレクトリにある他のkshスクリプトは正常に実行されるため、ここで何が問題になっているのかまったくわかりません。どんな助けでも大歓迎です

5
user68112

このエラーの原因となるキャリッジリターンがあると思います ここ 。エラーを正常に再現することができました。

テスト

cat ksh_experiment.ksh

#!/usr/bin/ksh
echo "Hello"

これで、ファイルを実行したときに権限を提供した後、出力が正常に生成されました。 ここ で説明したように、ファイルに改行を挿入しました。スクリプトを実行すると、次のような出力が得られました。

ksh: ./ksh_experiment.ksh: not found [No such file or directory]

さて、cat -v ksh_experiment.kshも同じ出力を生成しました。また、vim ksh_experiment.ksh、新しいファイルが開かれていました。

私が提供したリンクの回答で説明したように、コマンドを使用してキャリッジリターンを削除しました。

 Perl -p -i -e "s/\r//g" ksh_experiment.ksh

実行時に修正した後、期待どおりの出力が得られました。

9
Ramesh

私の場合、ファイルが。kshまたは。shのいずれかである場合、この同じエラーメッセージが表示されました。

-ksh: ./somefile.sh: not found [No such file or directory]

アクセスの問題が判明しました。

このファイルを実行可能にしても、サーバーで実行するには管理者権限が必要になる場合があります。コマンドラインを実行することはできますが、スクリプトを実行しても「見つかりません」が返されます。スクリプトをSudoで実行してみてください。そうすれば、スクリプトをrootとして実行できるかどうかがわかります。

0
Ajay. A