1

でディレクトリを作成するとmkdir -p、スクリプトで問題が発生します

$ mkdir -p test2/test2

$ cd test2/test2

$ echo '#!/bin/sh
> echo hello' > hello.sh

$ ./hello.sh
bash: ./hello.sh: Permission denied
4

2 に答える 2

7

これはとは関係ありませんmkdirhello.sh実行可能権限を付与していないだけです。次のものが必要です。

chmod +x hello.sh
于 2012-07-15T17:45:26.777 に答える
1

権限を確認してください

ディレクトリとスクリプト自体の権限を確認してください。可能性は低いですが、そこに問題があるかもしれません。

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
于 2012-07-15T17:49:30.983 に答える