Bash 脚本打开终端并进入目录

Bash 脚本打开终端并进入目录

我正在尝试编写一个简单的 bash 脚本,当从命令行运行时,它将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. 同一项目的文件浏览器

问题是我想通过以下方式运行我的 bash 脚本点击桌面图标但在目前的形式下,终端不会打开,只有文件浏览器。

因此我做了一些修改,尝试让终端也打开:

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

但是,虽然终端确实打开了,但它只显示一个空白屏幕,没有提示或密码。如何才能打开终端,并将其工作目录更改为我试图在 bash 脚本中指定的目录?

答案1

我没有让它与 x-terminal-emulator 一起工作,但是可以与标准的 gnome 终端一起工作。

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

希望这可以帮助。

答案2

您的问题是您没有在终端模拟器中执行 shell,而是尝试执行cd,这是一个 shell 命令,而不是实际的 shell(甚至不是实际的可执行文件)。

您可以创建一个在自定义工作目录中启动 shell 的桌面条目文件,如下所示:

我的项目.桌面

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

注意路径=…多于。

相关内容