0

我为 ssh 会话使用自定义 gnome-terminal 配置文件(不同的 bg 颜色提供了一个很好的视觉提示,我不在本地工作)。为什么我的别名不起作用?

这几乎可以工作,但终端窗口会立即关闭。

alias myssh='gnome-terminal --window-with-profile=SSH -e "ssh $1"'

我尝试使用 eval 并混合引号,没有变化

alias myssh='eval gnome-terminal --window-with-profile=SSH -e "/usr/bin/ssh $1"'
alias myssh='gnome-terminal --window-with-profile=SSH -e \"/usr/bin/ssh $1\"'
alias myssh='eval gnome-terminal --window-with-profile=SSH -e \"/usr/bin/ssh $1\"'
alias myssh='gnome-terminal --window-with-profile=SSH -e \"/usr/bin/ssh $1\"'

别名到文件中的脚本效果很好。有什么不同?

alias myssh='$HOME/bin/myssh.sh'

file:$HOME/bin/myssh.sh
#!/bin/bash
gnome-terminal --window-with-profile=SSH -e "ssh $1"
4

2 回答 2

2

在脚本中,您的论点在 $1 等。

别名几乎只是文本替换,即myssh foo只会上交

gnome-terminal --window-with-profile=SSH -e "ssh $1" foo

这显然是错误的。

只需将您的脚本添加到 ~/bin 之类的文件中。

于 2013-05-22T16:59:44.170 回答
2

bash别名不带参数。您可以改为定义一个 shell 函数:

myssh () {
    gnome-terminal --window-with-profile=SSH -e "ssh $1"
}
于 2013-05-22T18:01:01.280 回答