2

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

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

3 回答 3

4

我通常使用pbpaste/pbcopy,但你可能想找到一些有历史的东西供你使用。

于 2012-08-12T17:02:34.617 回答
3

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

alias go='ssh $(pbpaste) -l pete'
于 2012-08-12T21:03:21.610 回答
3

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

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

复制 IP 地址后,您可以键入“go”,使用 Command-V 粘贴 IP 地址,然后按回车键。

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

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

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

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

于 2012-08-13T14:01:06.603 回答