Я очень озадачен этой ошибкой и даже не знаю, что искать в Google:
Неудача - Выполнение скрипта с:
./test.sh
bash: ./test.sh: "Permission denied"
Работает - пока работают эти аппореши:
sh ./test.sh
Works
bash ./test.sh
Works
cat test.sh
#!/bin/bash
echo "Works"
chmod 777 test.sh
ls -als test.sh
4 -rwxrwxrwx 1 edo edo 27 13. Feb 10:41 test.sh
Я совершенно не понимаю, почему это происходит, поскольку для меня это не имеет никакого смысла, и я не знаю, какие слова использовать Google, чтобы правильно описать поведение ...
Выполнение сценария в зависимости от строки shebang работает совершенно иначе, чем его передача в качестве аргумента в оболочку.
В первом случае файл должен находиться в исполняемом разделе и содержать допустимую строку shebang для существующей оболочки.
В последнем случае ничего из этого не требуется, так как оболочка, с которой вы вызываете скрипт, берет на себя ответственность за эти вещи.
ОБРАТИТЕ ВНИМАНИЕ, что вы также не используете ту же оболочку для этих тестов: первая подразумевает bash, а вторая использует sh.
Я предполагаю, что раздел, на котором находится ваш скрипт, не позволяет его выполнение; mount -v
скажу вам, если это так.