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
スクリプトは正常に実行されるため、ここで何が問題になっているのかまったくわかりません。どんな助けでも大歓迎です
このエラーの原因となるキャリッジリターンがあると思います ここ 。エラーを正常に再現することができました。
テスト
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
実行時に修正した後、期待どおりの出力が得られました。
私の場合、ファイルが。kshまたは。shのいずれかである場合、この同じエラーメッセージが表示されました。
-ksh: ./somefile.sh: not found [No such file or directory]
アクセスの問題が判明しました。
このファイルを実行可能にしても、サーバーで実行するには管理者権限が必要になる場合があります。コマンドラインを実行することはできますが、スクリプトを実行しても「見つかりません」が返されます。スクリプトをSudoで実行してみてください。そうすれば、スクリプトをrootとして実行できるかどうかがわかります。