でディレクトリを作成するとmkdir -p
、スクリプトで問題が発生します
$ mkdir -p test2/test2
$ cd test2/test2
$ echo '#!/bin/sh
> echo hello' > hello.sh
$ ./hello.sh
bash: ./hello.sh: Permission denied
でディレクトリを作成するとmkdir -p
、スクリプトで問題が発生します
$ mkdir -p test2/test2
$ cd test2/test2
$ echo '#!/bin/sh
> echo hello' > hello.sh
$ ./hello.sh
bash: ./hello.sh: Permission denied
これはとは関係ありませんmkdir
。hello.sh
実行可能権限を付与していないだけです。次のものが必要です。
chmod +x hello.sh
ディレクトリとスクリプト自体の権限を確認してください。可能性は低いですが、そこに問題があるかもしれません。
ls -lad test2/test2
ls -l test2/test2/hello.sh
何らかの理由でパーミッションが正しく設定されていない場合は、いつでもmkdirで--modeフラグを使用できます。詳細については、chmod(1) および mkdir(1) を参照してください。
ファイルが現在のユーザーによって読み取り可能である限り、シバン行または実行可能ビットに依存するのではなく、Bash を使用してスクリプトを直接実行できます。例えば:
bash test2/test2/hello.sh
Bash で明示的に呼び出されたときにファイルを実行できる場合は、ファイルに実行ビットが設定されていることを確認する必要があります。例えば:
chmod 755 test2/test2/hello.sh