8

У меня есть несколько сценариев Python в /usr /share /scripts /, которые я часто использую, и я хочу иметь возможность выполнить их, просто написав имя, а не полный путь, как я могу это сделать?

echo $ PATH показывает мне:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/real/RealPlayer

Поэтому я попытался написать на терминале:

PATH="/usr/share/scripts/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/real/RealPlayer"
export

Ошибки не отображаются, и echo $ PATH теперь показывает путь моего нового сценария, но когда я запускаю scriptName, я получаю команду not found.

Что я делаю неправильно?

3 ответа3

9

Установите исполняемые права доступа для скриптов Python с помощью "chmod +x *"
Теперь у вас есть два варианта:

  • Добавьте каталог скриптов в переменную PATH env или
  • Поочередно делайте символические ссылки на ваши скрипты (или пишите другой скрипт для того же) в каталоге /usr/local/bin .

Пример:
[mzed@node02 test]$ vim printme.py

Содержание файла:

#!/usr/bin/python
print "This is cool!"

-

[mzed@node02 test]$ mv printme.py printme
[mzed@node02 test]$ chmod +x printme
[mzed@node02 ~]$ cd /usr/local/bin/
[mzed@node02 bin]$ sudo ln -s ~/test/printme .
[mzed@node02 bin]$ ls
deskzilla  grails  grails-debug  printme  startGrails
[mzed@node02 bin]$ cd
[mzed@node02 ~]$ printme 
This is cool!
[mzed@node02 ~]$

Я надеюсь, что это поможет вам.

1

Ладно, может я просто старшая школа ...
В /usr /bin добавьте сценарии оболочки с #!Заголовок /bin /bash и без расширения .sh. Тогда в этих скриптах просто запустите python absolutepath.

Почему я думаю, что это лучше, чем другие ответы:
Не требует изменения ваших скриптов, чтобы сделать их исполняемыми.
Не требует переименования ваших скриптов.

0

Извините за предложение основной вещи .. Вы пробовали "scriptname.py" вместо просто "scriptname"?

Кроме того, все сценарии должны иметь разрешения на выполнение (вы можете сделать это, выполнив команду «chmod +x script.py»).. Судя по вашему комментарию выше, так как вы запускаете их как "/usr/share/scripts/scriptName.py args", они должны иметь разрешения на выполнение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .