LINUX.ORG.RU

Запуск скрипта как программы

 ,


1

3

Всем привет! Вопрос немного нубсокй, но все-таки:я написал скрипт который добавляет записи в базу и производит еще некоторые манипуляции. Собственно вопрос: хочу его запускать как команду в linux'е, т.е. scriptname BIN, где BIN это аргумент. Т.е. не писать каждый раз ./scriptname или python scriptname. .service со ссылкой на скрипт я написал что еще нужно сделать или как вообще это сделать в общих чертах?


т.е. scriptname BIN

Т.е. не писать каждый раз ./scriptname или python scriptname

Не писать путь что ли? Положи свой скрипт куда-нибудь в PATH или добавь в PATH каталог со скриптом. Например положи его в /usr/local/bin

scriptname BIN, где BIN это аргумент

import sys

В sys.argv будут твои аргументы.

Если хотел не это, перефразируй вопрос. Плохо понятно, что именно нужно.

Psych218 ★★★★★
()
Последнее исправление: Psych218 (всего исправлений: 2)

Т.е. не писать каждый раз ./scriptname или python scriptname. .service со ссылкой на скрипт я написал что еще нужно сделать или как вообще это сделать в общих чертах?

Шта? Ну и каша у тебя в голове.. Сформулируй как-нибудь более адекватно.

v9lij ★★★★★
()

А в чём проблемы-то?
Или ты не знаешь что такое "./"?
Открою тебе тайну: адекватные операционки никогда не выполняют поиск в текущем каталоге. "." это текущий каталог, «/» это разделитель в пути до файла.
Хочешь выполнять без "./" — положи свой скрипт туда, откуда выполняется поиск файлов для выполнения. Обычно это «/bin» и «/usr/bin», но вообще варианты не ограничены, обычно их список в переменной $PATH находится.

Goury ★★★★★
()

В домашней папке в файле .bash_profile измени переменную PATH.

export PATH=«${HOME}/bin:${PATH}»

«${HOME}/bin» - это условно твоя папка с программой.

stalkerhouse
()
Ответ на: комментарий от stalkerhouse

В домашней папке в файле .bash_profile измени переменную PATH

А потом напиши свой .service, запускаемый скорее всего от другого юзера и думай, чего же не работает. Там обрати внимание дальше про .service же. Они, конечно, и юзерские бывают, но вряд ли это тот случай.

говно-движок сайта заменил двойные кавычки.

А потому что код надо писать в теге [code] или [inline].

Psych218 ★★★★★
()
Последнее исправление: Psych218 (всего исправлений: 1)

добавь шебанг в начале и сделай его исполняемым

zolden ★★★★★
()
Ответ на: комментарий от Psych218

А потом напиши свой .service, запускаемый скорее всего от другого юзера и думай, чего же не работает.

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

stalkerhouse
()
Ответ на: комментарий от stalkerhouse

Ты написал какойто идиотский случай.

Это не я придумал этот случай. В первом посте автор говорит про .service. То есть, ему, почти наверняка, не от своего юзера надо это запускать, а системно. Если я, конечно, правильно понял всю эту кашу…

Psych218 ★★★★★
()
Последнее исправление: Psych218 (всего исправлений: 1)
Ответ на: комментарий от Psych218

Понятно, спасибо! Про PATH я как-то забыл, да.

gadzira
() автор топика
Ответ на: комментарий от Psych218

Если системно, то проще абсолютный путь указать, лол.

Deleted
()

Если делать правильно, то нужно написать setup.py, где в entrypoints в секции console_scripts добавить имя команды и какую функцию на эту команду запускать. А потом python setup.py install.

Как-то так например - https://chriswarrick.com/blog/2014/09/15/python-apps-the-right-way-entry_poin...

ei-grad ★★★★★
()
Последнее исправление: ei-grad (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.