Bash script para abrir um terminal e cd em um diretório

3

Estou tentando escrever um script bash simples, que quando executado a partir da linha de comando, irá cd em um diretório padrão e, em seguida, abrirá a pasta no navegador de arquivos:

#!/bin/bash

if [ -z "" ]
then
  # unless  is specified, cd into main proj
  cd code/ruby/my-main-proj
else
  # cd into project specified by 
  cd code/ruby/
fi

# open folder in file manager    
pcmanfm .

Isso é ótimo, me dá duas coisas:

  1. um prompt de comando cujo diretório de trabalho está definido para o projeto que desejo
  2. um navegador de arquivos para o mesmo projeto

O problema é que eu gostaria de executar meu script clicando em um ícone da área de trabalho , mas em sua forma atual, o terminal não abre, apenas o navegador de arquivos ..

Então eu fiz uma modificação para tentar fazer o terminal abrir também:

then
  # unless  is specified, cd into main proj
  x-terminal-emulator -e "cd code/ruby/my-main-proj"
else
  # code same as before    

Mas enquanto o terminal é aberto, ele exibe apenas uma tela em branco, sem prompt ou PWD. Como posso obter um terminal para abrir e ter seu diretório de trabalho alterado para o que estou tentando especificar no meu script bash?

    
por marflar 13.02.2013 / 11:49

2 respostas

4

Eu não consegui que funcionasse com o emulador x-terminal, mas com o padrão terminal gnome.

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

Espero que isso ajude.

    
por Freqry 13.02.2013 / 12:15
4

O seu problema é que você não está executando um shell no seu emulador de temrinal, você está tentando executar o cd , que é um comando do shell, não um shell real (nem mesmo um executável propriamente dito).

Você pode criar um arquivo de entrada da área de trabalho que inicie um shell em um diretório de trabalho personalizado, como este:

MyProject.desktop :

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

Observe o Caminho = ... acima.

    
por Attila O. 13.02.2013 / 11:53

Tags