Shell Script Desktop Ярлык

Поэтому я попытался создать ярлык на рабочем столе, который выполняет очень простой сценарий оболочки. Но когда я дважды щелкаю / щелкаю правой кнопкой мыши -> выполняю, ничего не происходит. (или, по крайней мере, я думаю, что это ничего не делает)

вот как выглядит мой ярлык и скрипт оболочки: обратите внимание, что для ярлыка «Терминал» установлено значение 1, и я надеюсь, что это означает, что он открывает скрипт оболочки в новом окно терминала .. (у меня есть несколько открытых терминалов, которые не готовы к использованию (скрипты запущены))

Ярлык:

[Desktop Entry]
Version=1.0
Type=Application
Name=Test
Comment=Test
Exec=/home/(myusername)/test/test.sh
Icon=utilities-terminal
Terminal=true
StartupNotify=false
GenericName=Test

Сценарий оболочки:

#!/bin/sh
# (I tried both, /bin/bash and /bin/sh)
echo "hi"
4
задан 20 February 2013 в 09:28

2 ответа

И запись на рабочем столе, и сценарий оболочки должны иметь разрешения на выполнение. Выполните:

$ chmod +x path_to_shortcut/shortcut.desktop
$ chmod +x path_to_script/test.sh  

Другой способ изменить разрешения для сценария - щелкнуть его правой кнопкой мыши, перейти в Свойства> Разрешения и установить флажок Разрешить выполнение файла как программы .

Permissions

6
ответ дан 20 February 2013 в 09:28

На случай, если кто-то придет сюда из поиска в Google ... В 14.04 было головной болью выполнить сценарий оболочки, который запускает Android Studio на смонтированном диске. Пробовал множество вещей, но у меня ничего не работало. В конце концов пришлось написать код ниже и скомпилировать с помощью:

gcc -o studio studio.c 

, а затем создать ярлык для «studio» с рабочего стола, и теперь он, наконец, работает так, как должен.

Вот пример кода, вы можете заменить путь (/ media /.../studio.sh) в этом системном вызове после / bin / sh. Убедитесь, что это полный путь, и оставьте впереди «/ bin / sh».

#include <stdio.h>
int main(void) {
  int ret = system("/bin/sh /media/jeneag/APPS/linux/android-studio/bin/studio.sh");
  printf("app ret code: %d\n", ret);
  return 0;
}
0
ответ дан 20 February 2013 в 09:28

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

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