Я пытаюсь записать простой сценарий удара, который, когда выполнено из командной строки, будет cd
в каталог по умолчанию и затем открывают папку в файловом браузере:
#!/bin/bash
if [ -z "$1" ]
then
# unless $1 is specified, cd into main proj
cd code/ruby/my-main-proj
else
# cd into project specified by $1
cd code/ruby/$1
fi
# open folder in file manager
pcmanfm .
Здорово, это дает мне две вещи:
Проблема состоит в том, что я хотел бы запустить свой скрипт удара путем нажатия на значок на рабочем столе, но в он - текущая форма, терминал не открывается, просто файловый браузер..
Таким образом, я сделал модификацию, чтобы попытаться заставить терминал открываться также:
then
# unless $1 is specified, cd into main proj
x-terminal-emulator -e "cd code/ruby/my-main-proj"
else
# code same as before
Но в то время как терминал действительно открывается, он просто отображает пустой экран без подсказки или PWD. Как я могу заставить терминал открываться, и иметь он работает изменение каталога в том, которое я пытаюсь указать в своем сценарии удара?
Ваша проблема в том, что вы не запускаете оболочку в своем эмуляторе тем, вы пытаетесь выполнить cd
, которая является командой оболочки, а не реальной оболочкой (даже не фактическим исполняемым файлом в этом отношении).
Вы можете создать файл записи рабочего стола, который запускает оболочку в пользовательском рабочем каталоге, например:
MyProject.desktop :
[Desktop Entry]
Type=Application
Terminal=true
Exec=x-terminal-emulator
Path=/path/to/code/ruby/my-main-proj
Name=My Project
Обратите внимание на Путь =… выше.
Я работал не с x-терминал-эмулятором, а со стандартным терминалом gnome.
user@MacBookPro:~$ gnome-terminal --working-directory=~/code/ruby/my-main-proj
Надеюсь, это поможет.