这是我的别名文件中的一行,每当我打开终端时,它都会在 vim 编辑器中打开 jasonaccomp。
alias acc='gnome-terminal -e "bash -c 'cd ~/Downloads; vim jasonaccomp'"'
退出 vim 文档后我看到
bash: alias: /home/master/Downloads: not found
这一切都发生在我调用 acc 之前。更糟糕的是,在我的主目录中运行以下代码时,它的工作方式与我希望的完全一样。它会打开一个新终端,该终端会打开 jasonaccomp,当我完成编辑后,该终端会关闭。
gnome-terminal -e "bash -c 'cd ~/Downloads; vim jasonaccomp'"
此外,输入命令 acc 时,会出现一个闪烁的光标 >。如何避免每次打开新终端时都要编辑 jasonaccomp?此外,如何让 acc 执行上述代码行的操作。
答案1
您的问题是由于单引号使用不正确,确切地说是单引号内的单引号。
从man bash
:
将字符括在单引号中可保留引号内每个字符的字面值。单引号之间不能出现单引号,即使前面有反斜杠。
因此将单引号改为bash -c
转义双引号:
alias acc='gnome-terminal -e "bash -c \"cd ~/Downloads; vim jasonaccomp\""'