Bash: в попытке открыть файл отказано - PullRequest
7 голосов
/ 02 октября 2010

Недавно я решил попытаться изучить некоторые сценарии bash, и в качестве забавного упражнения я решил создать сценарий, чтобы открывать для меня ежедневный файл для записи заметок при каждом запуске сценария.

Это сработалонормально, пока я не выйду из системы и не вернусь к системе позже, когда получу ошибку

/usr/local/bin/notes: line 45: /home/MY_USERNAME/notes/2010-10-01:Permission denied

Код

Я могу ошибаться, но это, конечно, не похоже на то, что не требует дополнительных разрешений, не так ли?

Для редактора установлено значение nano

Разрешения для файла -rw-rw-r--

Разрешения сценария -rwxr-xr-x

Ответы [ 3 ]

7 голосов
/ 02 октября 2010

Я думаю, что в

$EDITOR $DAILY_FILENAME 

$EDITOR имеет значение null, поэтому он пытается выполнить $DAILY_FILENAME, который не может быть выполнен. Возможно, когда вы тестировали, вы установили EDITOR вручную, но не добавили его в свой файл .bashrc (или любой другой).

Используйте опцию -x, чтобы доказать это.

7 голосов
/ 02 октября 2010

проверьте права доступа к файлу с

ls -l /path/to/your/file

, вы должны увидеть что-то вроде

-rw-r--r--

r означает «читаемый», «записываемый» и «x исполняемый».

первый набор для вашего пользователя, второй набор из трех для вашей группы, а третий набор для всех.

, поэтому в моем примере файл, который я показал, предназначен для чтения / записи для меня, итолько для чтения для моей группы и для любого другого пользователя.

Используйте команду chmod для изменения разрешений.

chmod 744 file

сделает файл доступным для чтения / записи / исполнения и просто прочитает дляпользователь / мир.

0 голосов
/ 02 октября 2010

Если бы мне пришлось угадывать, я бы предположил, что переменная окружения $EDITOR по какой-то причине не определена. Похоже, ваш скрипт пытается выполнить файл заметок - поскольку он не исполняется, вы получаете бесполезное сообщение об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...