我正在尝试编写一个简单的 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 .
Run Code Online (Sandbox Code Playgroud)
这很棒,它给了我两件事:
麻烦的是,我想运行我的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
Run Code Online (Sandbox Code Playgroud)
但是当终端打开时,它只显示一个空白屏幕,没有提示或密码。我怎样才能打开一个终端,并将它的工作目录更改为我试图在我的 bash 脚本中指定的目录?
您的问题是您没有在终端模拟器中执行 shell,而是尝试执行cd,这是一个 shell 命令,而不是实际的 shell(甚至不是实际的可执行文件)。
您可以创建一个桌面入口文件,在自定义工作目录中启动 shell,如下所示:
\n\n我的项目.桌面:
\n\n[Desktop Entry]\nType=Application\nTerminal=true\nExec=x-terminal-emulator\nPath=/path/to/code/ruby/my-main-proj\nName=My Project\nRun Code Online (Sandbox Code Playgroud)\n\n注意上面的Path=\xe2\x80\xa6。
\n小智 5
我没有让它与 x-terminal-emulator 一起工作,而是与标准的 gnome 终端一起工作。
user@MacBookPro:~$ gnome-terminal --working-directory=~/code/ruby/my-main-proj
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
12404 次 |
| 最近记录: |