& ldquo; команда не найдена & rdquo; для скриптов в ~ / bin

Я установил Ubuntu 17.04 и скопировал свои собственные скрипты в ~/bin. Затем я сделал все файлы в этом исполняемом каталоге через chmod. Я дважды проверял в GUI, и файлы исполняемы.

Я проверил файл ~ / .profile и уже содержит следующие строки (которые НЕ прокомментированы):

if [ -d "$HOME/bin" ]; then PATH="$HOME/bin:$PATH" fi

Однако, когда я пытаюсь запустить скрипт (в этом каталоге), набрав my-script-name в терминале, я получаю ошибку «command not found», но когда я набираю ~/bin/my-script-name, он работает правильно.

Я смог запустить пользовательские скрипты из каталога ~/bin таким образом в 16.04 LTS, но он не работает для меня в 17.04. Что мне нужно сделать, чтобы сделать эту работу? 17.04 больше не проверяет этот каталог?

0
задан 26 August 2017 в 07:41

4 ответа

Если вы хотите настроить свой путь для выполнения сценариев в сеансе терминала, предпочтительнее поместить объявления Path в ваш файл ~ / .bashrc.

Итак, отредактируйте файл ~ / .bashrc и добавьте в конец этого файла, следующая строка:

export PATH=$PATH:$HOME/bin

или

export PATH=$PATH:~/bin

, поэтому каждый раз, когда вы открываете сеанс терминала, вы должны правильно настроить PATH. в терминальной сессии

0
ответ дан 18 July 2018 в 07:53

Я где-то читал, чтобы попробовать запустить exec -l bash, и это устранило проблему в этом окне терминала, если она была открыта. Однако, когда я закрыл окно и попытался запустить скрипты в новом окне, у меня снова была та же проблема.

В этот момент я попытался перезагрузить, и проблема исправлена, хотя я действительно не понимаю, почему. Когда я запускаю export | grep $PATH, я получаю следующее:

declare -x PATH="/home/myusername/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"

Так что возможно, что запуск exec -l bash, а затем перезагрузка может устранить проблему. Я был бы признателен за любые комментарии или объяснения относительно того, был ли это подходящий курс действий или был случайный случай, который был исправлен путем перезагрузки.

0
ответ дан 18 July 2018 в 07:53

Если вы хотите настроить свой путь для выполнения сценариев в сеансе терминала, предпочтительнее поместить объявления Path в ваш файл ~ / .bashrc.

Итак, отредактируйте файл ~ / .bashrc и добавьте в конец этого файла, следующая строка:

export PATH=$PATH:$HOME/bin

или

export PATH=$PATH:~/bin

, поэтому каждый раз, когда вы открываете сеанс терминала, вы должны правильно настроить PATH. в терминальной сессии

0
ответ дан 24 July 2018 в 18:55
  • 1
    Это не сработает: PATH=$PATH:$HOME/bin/my-script-name. Элементы в PATH должны быть dirs. – wjandrea 28 August 2017 в 07:49
  • 2
    это правда, @wjandrea. Я исправил его – Redbob 28 August 2017 в 14:52

Я где-то читал, чтобы попробовать запустить exec -l bash, и это устранило проблему в этом окне терминала, если она была открыта. Однако, когда я закрыл окно и попытался запустить скрипты в новом окне, у меня снова была та же проблема.

В этот момент я попытался перезагрузить, и проблема исправлена, хотя я действительно не понимаю, почему. Когда я запускаю export | grep $PATH, я получаю следующее:

declare -x PATH="/home/myusername/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"

Так что возможно, что запуск exec -l bash, а затем перезагрузка может устранить проблему. Я был бы признателен за любые комментарии или объяснения относительно того, был ли это подходящий курс действий или был случайный случай, который был исправлен путем перезагрузки.

0
ответ дан 24 July 2018 в 18:55

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

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