gnome-terminal 的别名非常奇怪

Jas*_*ese 3 bash gnome-terminal alias

这是我的别名文件中的一行,因此每当我打开终端时,它都会在 vim 编辑器中打开 jasonaccomp。

alias acc='gnome-terminal -e "bash -c 'cd ~/Downloads; vim jasonaccomp'"'
Run Code Online (Sandbox Code Playgroud)

退出vim doc后我看到

bash: alias: /home/master/Downloads: not found
Run Code Online (Sandbox Code Playgroud)

这一切都是在我什至打电话给 acc 之前。更糟糕的是,以下代码在我的主目录中运行时,完全按照我的意愿工作。它打开一个新终端,打开 jasonaccomp,当我完成编辑后,终端关闭。

gnome-terminal -e "bash -c 'cd ~/Downloads; vim jasonaccomp'"
Run Code Online (Sandbox Code Playgroud)

此外,键入时命令 acc 给我 > 一个闪烁的光标。每当我打开一个新终端时,如何摆脱编辑 jasonaccomp 的麻烦?另外,我如何让 acc 执行上述代码行的操作。

hee*_*ayl 8

您的问题是由于不正确使用单引号,单引号内的单引号。

来自man bash

将字符括在单引号中会保留引号内每个字符的字面值。单引号之间不能出现单引号,即使前面有反斜杠。

所以把的单引号bash -c改成转义的双引号:

alias acc='gnome-terminal -e "bash -c \"cd ~/Downloads; vim jasonaccomp\""'
Run Code Online (Sandbox Code Playgroud)