繁体   English   中英

Shell脚本有效,别名失败。 为什么?

[英]shell script works, alias fails. why?

我为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"

在脚本中,您可以在$ 1等中使用参数。

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

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

这显然是错误的。

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

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

myssh () {
    gnome-terminal --window-with-profile=SSH -e "ssh $1"
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM