我正在尝试编写一个简单的 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 .
这太棒了,它给了我两件事:
- 一个命令提示符,其工作目录设置为我想要的项目
- 同一项目的文件浏览器
问题是我想通过以下方式运行我的 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
注意路径=…多于。