Автозапуск сценария Python в терминале Lubuntu

Развернувшись на недавнем ответе, который получает PID щелкнутого окна, вы можете запустить его, щелкнуть по нему, и он должен (что-то не работает) дать вам пакет.

dpkg -S $(sed 's/\x0.*//' /proc/$(xprop _NET_WM_PID | awk '{print $NF}')/cmdline)

Как только у вас есть пакет, довольно просто найти на Launchpad или через недавний ответ, который получает PID щелкнутого окна .

1
задан 6 September 2017 в 23:57

3 ответа

Используйте xterm -e python /path/to/script.py вместо кавычек.

Ваши кавычки " не ведут себя так, как вы хотите. xterm -e пытается запустить "python с /path/to/script.py" в качестве своего аргумента, а не python с /path/to/script в качестве аргумента. В этом случае вы можете просто опустить кавычки.

В сценарии оболочки или при интерактивном запуске оболочки кавычки обрабатываются специально, и выполняется удаление ссылки. Но это не происходит с командами, которые вы указываете в конфигурации LXSession → Автозапуск → Ручные автозапущенные приложения.

К счастью, хотя xterm -e в Ubuntu будет выполнять , кавычки обрабатываются специально на одном аргумент, чтобы рассматривать его как команду, он также принимает несколько аргументов. Вот почему -e должен быть последним вариантом - все остальное интерпретируется как часть команды. Например, если вы запустите xterm -e nano foo, который откроет foo в nano в окне XTerm. Поскольку man xterm говорит:

-e program [ arguments ... ] This option specifies the program (and its command line arguments) to be run in the xterm window. It also sets the window title and icon name to be the basename of the program being executed if neither -T nor -n are given on the command line. This must be the last option on the command line.

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

xterm -e python /path/to/script.py

Приходят еще два оговорки:

Когда скрипт заканчивается, python завершает работу, а затем окно XTerm тоже закроется. Если вы этого не хотите, вы можете добавить код в скрипт Python, который ждет взаимодействия с пользователем, или вы можете написать сценарий оболочки оболочки (или любой тип сценария оболочки), который запускает python /path/to/script.py, а затем ждет взаимодействия с пользователем. XTerm отлично работает в Lubuntu, но эмулятор терминала GUI по умолчанию - LXTerminal. Если вы предпочитаете использовать это, вы можете использовать lxterminal вместо xterm. Команда lxterminal принимает -e и обрабатывает ее так же, как xterm, поэтому это будет выглядеть как lxterminal -e python /path/to/script/py. Как и в случае с XTerm, LXTerminal прекратит выполнение команды.
1
ответ дан 22 May 2018 в 18:43

Используйте xterm -e python /path/to/script.py вместо кавычек.

Ваши кавычки " не ведут себя так, как вы хотите. xterm -e пытается запустить "python с /path/to/script.py" в качестве своего аргумента, а не python с /path/to/script в качестве аргумента. В этом случае вы можете просто опустить кавычки.

В сценарии оболочки или при интерактивном запуске оболочки кавычки обрабатываются специально, и выполняется удаление ссылки. Но это не происходит с командами, которые вы указываете в конфигурации LXSession → Автозапуск → Ручные автозапущенные приложения.

К счастью, хотя xterm -e в Ubuntu будет выполнять , кавычки обрабатываются специально на одном аргумент, чтобы рассматривать его как команду, он также принимает несколько аргументов. Вот почему -e должен быть последним вариантом - все остальное интерпретируется как часть команды. Например, если вы запустите xterm -e nano foo, который откроет foo в nano в окне XTerm. Поскольку man xterm говорит:

-e program [ arguments ... ] This option specifies the program (and its command line arguments) to be run in the xterm window. It also sets the window title and icon name to be the basename of the program being executed if neither -T nor -n are given on the command line. This must be the last option on the command line.

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

xterm -e python /path/to/script.py

Приходят еще два оговорки:

Когда скрипт заканчивается, python завершает работу, а затем окно XTerm тоже закроется. Если вы этого не хотите, вы можете добавить код в скрипт Python, который ждет взаимодействия с пользователем, или вы можете написать сценарий оболочки оболочки (или любой тип сценария оболочки), который запускает python /path/to/script.py, а затем ждет взаимодействия с пользователем. XTerm отлично работает в Lubuntu, но эмулятор терминала GUI по умолчанию - LXTerminal. Если вы предпочитаете использовать это, вы можете использовать lxterminal вместо xterm. Команда lxterminal принимает -e и обрабатывает ее так же, как xterm, поэтому это будет выглядеть как lxterminal -e python /path/to/script/py. Как и в случае с XTerm, LXTerminal прекратит выполнение команды.
1
ответ дан 18 July 2018 в 07:18

Используйте xterm -e python /path/to/script.py вместо кавычек.

Ваши кавычки " не ведут себя так, как вы хотите. xterm -e пытается запустить "python с /path/to/script.py" в качестве своего аргумента, а не python с /path/to/script в качестве аргумента. В этом случае вы можете просто опустить кавычки.

В сценарии оболочки или при интерактивном запуске оболочки кавычки обрабатываются специально, и выполняется удаление ссылки. Но это не происходит с командами, которые вы указываете в конфигурации LXSession → Автозапуск → Ручные автозапущенные приложения.

К счастью, хотя xterm -e в Ubuntu будет выполнять , кавычки обрабатываются специально на одном аргумент, чтобы рассматривать его как команду, он также принимает несколько аргументов. Вот почему -e должен быть последним вариантом - все остальное интерпретируется как часть команды. Например, если вы запустите xterm -e nano foo, который откроет foo в nano в окне XTerm. Поскольку man xterm говорит:

-e program [ arguments ... ] This option specifies the program (and its command line arguments) to be run in the xterm window. It also sets the window title and icon name to be the basename of the program being executed if neither -T nor -n are given on the command line. This must be the last option on the command line.

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

xterm -e python /path/to/script.py

Приходят еще два оговорки:

Когда скрипт заканчивается, python завершает работу, а затем окно XTerm тоже закроется. Если вы этого не хотите, вы можете добавить код в скрипт Python, который ждет взаимодействия с пользователем, или вы можете написать сценарий оболочки оболочки (или любой тип сценария оболочки), который запускает python /path/to/script.py, а затем ждет взаимодействия с пользователем. XTerm отлично работает в Lubuntu, но эмулятор терминала GUI по умолчанию - LXTerminal. Если вы предпочитаете использовать это, вы можете использовать lxterminal вместо xterm. Команда lxterminal принимает -e и обрабатывает ее так же, как xterm, поэтому это будет выглядеть как lxterminal -e python /path/to/script/py. Как и в случае с XTerm, LXTerminal прекратит выполнение команды.
1
ответ дан 24 July 2018 в 18:46

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

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