Я создаю сценарий тестовой оболочки в своей папке Desktop, делаю его исполняемым, и он работает нормально. Я копирую его на смонтированный чип SD, и атрибуты меняются, а выполнение не выполняется.
Вот тестовый пример. Обратите внимание, что командная строка является рабочим каталогом. Это было немного отредактировано (добавлены пустые строки и удалены некоторые подсказки) для ясности.
Я не понимаю, почему атрибуты меняются и почему скрипт не работает.
## print file test.sh contents
Desktop>> cat test.sh
#!/bin/bash
echo 'Works OK'
Desktop>>
## list file attributes to verify it is executable.
##Note attributes. They change after file copy.
Desktop>> ls -al test.sh
-rwxr-xr-x. 1 ron ron 28 Feb 16 13:41 test.sh
Desktop>>
## run the shell
## shell output is correct.
Desktop>> ./test.sh
Works OK
Desktop>>
## copy shell to SD chip
Desktop>> cp test.sh /media/removable/10-EDC/org
Desktop>>
## change to SD chip
Desktop>> cd /media/removable/10-EDC/org
org>>
##list file attributes. Note that they have changed.
## org>> ls -al test.sh
-rwxrwxrwx. 1 ron ron 28 Feb 16 14:58 test.sh
org>>
## run the shell. Fails.
org>> ./test.sh
bash: ./test.sh: Permission denied
org>>
ОС Ubuntu 16.04.
Было высказано предположение, что это может быть связано с тем, как был отформатирован чип SD. Я считаю, что это отформатировано как MSDOS (жир ??) для совместимости с другими машинами. У меня нет опыта в этой области (вопросы форматирования).
Любая помощь приветствуется.