9

Я написал сценарий. Когда он начинается, он не останавливается и продолжает получать данные из Интернета. Я могу назвать это так:

cd /User/Desktop/project/internetScanner/
python3 main.py start

Но я хотел бы позвонить прямо из терминала, например, в пределах пункта назначения:

internetScanner start

Как я могу это сделать?

3 ответа3

27

Возможно, вам следует переименовать ваш файл main.py в internetScanner . Расширения в * nix не являются обязательными. Это не должно иметь значения здесь.

mv main.py internetScanner

Затем добавьте следующую строку в этот файл, в самом начале:

#!/usr/bin/env python3

Это гарантирует, что когда оболочка выполнит файл, она будет знать, что для интерпретации содержимого используется python3 . Это известно как Шебанг . Теперь сделайте файл исполняемым:

chmod +x internetScanner

Теперь вы можете запустить вашу программу из /User/Desktop/project/internetScanner/:

./internetScanner start

Ваша программа будет работать на переднем плане и продолжать работать, пока вы не нажмете Ctrl - C. Если вы не хотите этого, вы также можете запустить программу в фоновом режиме, добавив амперсанд после команды:

./internetScanner start &

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

Если вы теперь хотите иметь возможность запускать программу из любого места в системе, вам нужно добавить каталог internetScanner в вашу PATH: что такое PATH и другие переменные среды, и как я могу их установить или использовать?

2

Предполагая, что другие файлы в /User/Desktop/project/internetScanner/ не нужны, если вы хотите установить для одного пользователя, связывайте (ln -s) main.py с $HOME/bin/internetScanner . Возможно, вам сначала понадобится mkdir $HOME/bin .

В следующий раз, когда вы войдете в систему, $HOME/bin , вероятно, будет добавлен в вашу PATH. Если вы хотите, чтобы он был доступен для всех пользователей, скопируйте его в /usr/local/bin .

Если он должен выполняться в /User/Desktop/project/internetScanner/ , либо начните с импорта os и вызова

os.chdir('/User/Desktop/project/internetScanner/') 

или создайте сценарий запуска в $HOME/bin или /usr/local/bin который изменяется на /User/Desktop/project/internetScanner/ и выполняет сценарий.

0

Поместите alias internetScanner "python /User/Desktop/project/internetScanner/main.py" в файл .aliases (для csh). Для bash поместите alias internetScanner="python /User/Desktop/project/internetScanner/main.py" в .bashrc. После этого вы можете использовать InternetScanner начать с любого места.

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