私は奇妙な問題を抱えています。次のような基本的なものでもbashスクリプトを実行できません。
#!/bin/bash
echo "me"
Test.shとして保存してから、chmod 755 test.shを実行し、。/ test.shを実行して次のようにします。
bash: ./test.sh: Permission denied
何か案は ?
乾杯
これは、「noexec」オプションを使用してファイルシステムをマウントした場合に発生する可能性があります。あなたはそれを削除する必要があります。
スクリプトは実行可能である必要があります。これを使って:
chmod +x <script-name>
この特定のスレッドに直接関係するわけではありませんが、ファイルがWindowsシステムから送信された場合、行末にCR/LFがある可能性があります。これは、最初の実行行を含むファイル内のすべての行に影響し、ファイルを表示している場合は表示されません。
$ ./test.sh
-bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory
これを確認するには、ファイルをcat -A:$ cat -A ./test.sh#!/ bin/bash ^ M $ echo "me" ^ M $
削除するには、dos2unixを使用します。
使用する chmod +x ./test.sh
これで実行できるはずです。
試してみてください
ls -la
ファイルの実際の権利と所有権を確認します。 chmodコマンドが実際に機能したかどうかを確認します。ファイルチェックのmodとともに所有権を変更することをお勧めします: http://www.tuxfiles.org/linuxhelp/fileowner.html
また、スクリプトを含むディレクトリ/ファイルシステムがnfsマウントされているかどうかを確認してください。 rootは、nfsにマウントされた場所からスクリプトを実行しません。
そのファイルのディレクトリにいるときは./test.sh
を使用する必要があります。使用しない場合は、PATH TO THE SCRIPT
を試してください。または、/data
のディレクトリにコピーして、シェル用にchmodすることもできます。次に、上記のスティープを実行します。それでも失敗する場合は、同じ問題があるので問題ありません。一度だけ成功しました。