Я действительно хотел бы понять базовые причины, почему некоторые сценарии работают из командной строки, но не когда дважды щелкнувший.
Существует ли пример сценария, который делает что-то простое, как повторение переменной или чего-то как этот, который восстанавливаемо работал бы в командной строке, но затем не удался бы работать когда дважды щелкнувший?
Чтобы быть ясным, я подразумеваю, что это должно работать в обоих экземплярах, но когда дважды щелкнувший это не должно выполнять его задачу правильно, и это должно сделать это на любой недавней установке Ubuntu. Я надеюсь, что способностью воспроизвести поведение я могу понять это и зафиксировать его сам в будущем.
Самый легкий пример:
создают файл "тест" и помещают
#!/bin/bash
echo "Hello World!"
в нем
chmod 700 test
делает ./test
на командной строке, и он произведет
Hello world!
От Наутилуса:
, Но это - предназначенное поведение. Для Наутилуса необходимо было бы создать сценарий, который делает "всплывающее окно" с текстом "Привет мир!" в нем.
Пример:
#!/usr/bin/python
import os
os.system('zenity --info --text="Hello world!!"')
показал бы...
Между прочим: это также работает из командной строки, когда у Вас есть рабочий стол. На tty это показало бы ошибку, "Отказавшую для соединения с Миром".
и фиксируют его самостоятельно в будущем
, я сомневаюсь, хотя существует что-то для фиксации. Выполнение в командной строке и выполнение в Наутилусе являются 2 разными вещами.
Хорошо, я думаю, что у меня есть ответ ... по крайней мере, это решает мою проблему, и по пути я наткнулся на это и думал, что вернусь и отправлю ответ.
Сценарии оболочки не имеют той же переменной $ PATH, что и терминал. Я могу изменить это для целей сценария (в моем случае на примере ноутбука Jupyter), выполнив следующее:
#! /usr/bin/env sh
#this adds the location where jupyter command is found
export PATH="/home/username/anaconda3/bin:$PATH"
jupyter notebook
, и это сработает.
Кроме того, некоторым программам может понадобиться терминал для взаимодействия, чтобы вы могли сделать что-то вроде:
#! /usr/bin/env sh
#this adds the location where jupyter command is found
export PATH="/home/username/anaconda3/bin:$PATH"
xterm -e "jupyter notebook" # brings up a terminal window
И это вызовет окно терминала для отображения вывода и приема ввода.
Редактировать: я изменил для полноты.