在Mac终端中使用变量创建别名

时间:2012-08-12 16:53:59

标签: macos bash

如何在别名中使用变量?例如,如果pbcopy允许我访问剪贴板(复制的ip地址)并将其分配给$ip我可以复制一个IP地址,然后使用alias,如下面的失败示例。

alias go='ip=pbpaste | ssh $ip -l pete'

3 个答案:

答案 0 :(得分:4)

我通常使用pbpaste/pbcopy,但您可能希望找到具有历史记录的内容供您使用。

答案 1 :(得分:3)

无需创建变量或管道,只需使用子shell:

alias go='ssh $(pbpaste) -l pete'

答案 2 :(得分:1)

另一种选择是使用函数代替别名,因为函数可以带参数:

function go {
    ssh "$1" -l pete
}

复制IP地址后,您可以输入“go”,使用Command-V粘贴IP地址,然后点击返回。

您还可以复制接受的答案,以避免手动粘贴地址:

function go {
    ssh $(pbpaste) -l pete
}

所以这里真正的信息是开始考虑shell函数而不是别名,因为根据bash手册页

  

对于几乎所有目的,别名都被shell函数取代。