Выполнение сценария bash в терминале только по его имени [дубликат]

Я пытаюсь следовать этому примеру в Руководстве по Bash по здесь , где можно запускать сценарий только по его имени вместо имя сценария bash . Сначала я использовал эти три команды, чтобы создать каталог bin, добавить его путь к PATH, добавить его в файл конфигурации bash, а затем перезагрузить его:

$ mkdir -p "$HOME/bin"
$ echo 'PATH="$HOME/bin:$PATH"' >> "$HOME/.bashrc"
$ source "$HOME/.bashrc"

Затем я создал простой сценарий, который выглядит следующим образом:

#!/usr/bin/env bash


echo "Hello World"

Однако , когда я пытаюсь запустить его только по имени в терминале, он выдает ошибку:

bash: /home/fieldsofgold/bin/mybashscript: Permission denied

Может ли кто-нибудь помочь мне с этим? Спасибо.

РЕДАКТИРОВАТЬ: вывод для ls -l :

fieldsofgold@fieldsofgold-VirtualBox:~$ ls -l
total 152
-rwxrwxr-x  1 fieldsofgold fieldsofgold 13469 Mar 28 17:17 a.out
drwxrwxr-x  2 fieldsofgold fieldsofgold  4096 Aug 12 06:23 bin
drwxr-xr-x  9 fieldsofgold fieldsofgold  4096 Aug 11 07:55 Desktop
drwxr-xr-x  2 fieldsofgold fieldsofgold  4096 Feb 13 19:15 Documents
drwxr-xr-x  3 fieldsofgold fieldsofgold  4096 Aug 11 10:49 Downloads
-rwxrwxr-x  1 fieldsofgold fieldsofgold  8509 Mar 19 12:10 ex1
-rw-rw-r--  1 fieldsofgold fieldsofgold  1852 Mar 25 19:59 ex1.c
-rw-rw-r--  1 fieldsofgold fieldsofgold  1827 Mar 25 12:56 ex1.c~
-rw-rw-r--  1 fieldsofgold fieldsofgold  1773 Mar 25 12:43 ex2.c~
-rw-rw-r--  1 fieldsofgold fieldsofgold  1834 Mar 25 12:36 ex3.c~
-rw-rw-r--  1 fieldsofgold fieldsofgold  1786 Mar 25 12:44 ex4.c~
-rw-r--r--  1 fieldsofgold fieldsofgold  8980 Feb 13 18:27 examples.desktop
-rwxr-xr-x  1 root         root            33 Aug  9 19:32 helloworld.sh
drwxr-xr-x  2 fieldsofgold fieldsofgold  4096 Feb 13 19:15 Music
-rw-rw-r--  1 fieldsofgold fieldsofgold     0 Aug 11 15:10 mybashscript~
drwxrwxr-x  4 fieldsofgold fieldsofgold  4096 Jul 29 20:30 nltk_data
drwxrwxr-x  8 fieldsofgold fieldsofgold  4096 Jul 28 19:48 numpy
-rw-rw-r--  1 fieldsofgold fieldsofgold  1571 Mar 28 08:13 oddEvenTrans22.c
-rw-rw-r--  1 fieldsofgold fieldsofgold    38 Mar 25 15:44 oddEvenTrans.c~
drwxr-xr-x  5 root         root          4096 Jul 28 11:18 openblas
drwxrwxr-x 14 fieldsofgold fieldsofgold  4096 Jul 28 11:18 OpenBLAS
drwxr-xr-x  2 fieldsofgold fieldsofgold  4096 Mar 26 04:25 Pictures
-rw-rw-r--  1 fieldsofgold fieldsofgold     0 Mar 25 19:16 practice.c
drwxr-xr-x  2 fieldsofgold fieldsofgold  4096 Feb 13 19:15 Public
drwxrwxr-x  2 fieldsofgold fieldsofgold  4096 Mar 30 09:12 python
drwxrwxr-x  2 fieldsofgold fieldsofgold  4096 Mar 29 18:05 scans
drwxr-xr-x  2 fieldsofgold fieldsofgold  4096 Feb 13 19:15 Templates
-rw-rw-r--  1 fieldsofgold fieldsofgold    78 Mar 16 06:47 testfile
-rw-rw-r--  1 fieldsofgold fieldsofgold  4606 Feb 15 04:16 Vagrantfile
drwxr-xr-x  2 fieldsofgold fieldsofgold  4096 Feb 13 19:15 Videos
-rw-rw-r--  1 fieldsofgold fieldsofgold    29 Aug  9 16:50 vitestfile
-rw-rw-r--  1 fieldsofgold fieldsofgold   591 Mar 28 08:10 wr
1
задан 12 August 2015 в 09:52

2 ответа

Необходимо будет изменить полномочия. Заметьте -rw-rw-r-- строка в строке приблизительно mybashscript~. Эти символы показывают уровень полномочий для файла. Прямо сейчас у Вас есть он так, чтобы ничто не могло выполнить файл, только считайте или запишите это.

легкая фиксация chmod 775 ./mybashscript. Это изменит те символы на -rwxrwxr-x. Добавленное x средний, что любой может также выполнить код и позволит Вам выполнять свой код.

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

2
ответ дан 12 August 2015 в 19:52
  • 1
    ^_^ благодарит за доброжелательный не совсем получение там и таким образом предоставление мне оправдание играть с sed – Zanna 4 November 2016 в 02:55

У Вас, кажется, нет исполняемого разрешения для того сценария,

-rw-rw-r--  1 fieldsofgold fieldsofgold     0 Aug 11 15:10 mybashscript

, тип

sudo chmod a+x mybashscript

затем выполняет его с

./mybashscript

, Это будет работать

0
ответ дан 12 August 2015 в 19:52
  • 1
    Материал заключения в кавычки очень полезен также, я всегда чувствую себя взволнованным о неупомянутых переменных! – Arronical 4 November 2016 в 02:57

Другие вопросы по тегам:

Похожие вопросы: