Сценарий Bash для открытия терминала и CD в каталог

Я пытаюсь записать простой сценарий удара, который, когда выполнено из командной строки, будет 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 .

Здорово, это дает мне две вещи:

  1. командная строка, рабочий каталог которой установлен на проект, который я хочу
  2. файловый браузер для того же проекта

Проблема состоит в том, что я хотел бы запустить свой скрипт удара путем нажатия на значок на рабочем столе, но в он - текущая форма, терминал не открывается, просто файловый браузер..

Таким образом, я сделал модификацию, чтобы попытаться заставить терминал открываться также:

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. Как я могу заставить терминал открываться, и иметь он работает изменение каталога в том, которое я пытаюсь указать в своем сценарии удара?

3
задан 13 February 2013 в 14:49

2 ответа

Ваша проблема в том, что вы не запускаете оболочку в своем эмуляторе тем, вы пытаетесь выполнить cd, которая является командой оболочки, а не реальной оболочкой (даже не фактическим исполняемым файлом в этом отношении).

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

MyProject.desktop :

[Desktop Entry]
Type=Application
Terminal=true
Exec=x-terminal-emulator
Path=/path/to/code/ruby/my-main-proj
Name=My Project

Обратите внимание на Путь =… выше.

0
ответ дан 13 February 2013 в 14:49

Я работал не с x-терминал-эмулятором, а со стандартным терминалом gnome.

user@MacBookPro:~$ gnome-terminal --working-directory=~/code/ruby/my-main-proj

Надеюсь, это поможет.

0
ответ дан 13 February 2013 в 14:49

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

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