-ksh: 収益_ext.ksh: 見つかりません [該当するファイルまたはディレクトリなし]

-ksh: 収益_ext.ksh: 見つかりません [該当するファイルまたはディレクトリなし]

not found [No such file or directory]kshスクリプトを実行しようとしたときに同じエラーが発生しました。 PATHのヒントを読んで、./投稿のaを使ってスクリプトを実行してください。ここそしてここ試してみたが運がなかった。スクリプトはフル権限で実行したいディレクトリに存在しますが、直接実行したり./スクリプトの最初の行を使用したりする場合も同様です。#!/usr/bin/ksh

エラーメッセージは次のとおりです。

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

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

答え1

このエラーを引き起こすいくつかのキャリッジリターンがある可能性があると思います。ここ。エラーを正常に再現できました。

テスト

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

修正を実行すると、期待した結果が表示されます。

答え2

私の場合、ファイルが次のいずれかである場合は、同じエラーメッセージが表示されます。.kshまたはこのように:

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

アクセスの問題であることがわかりました。

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

答え3

^Mキャラクターのせいでこんなことが起こりました。

それを試してみると、dos2unix <File_name>期待した結果が得られます。

関連情報