2012-08-12 54 views
2

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

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

参见:http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/pbcopy.1.html – 2012-08-12 16:56:43

+0

命令-V组合键复制到剪贴板中的内容进入终端窗口的命令行。您可以突出显示所需的文本,并使用Command-C将其复制到剪贴板。你在找别的东西吗?例如,我经常使用这些将浏览器中的信息(例如堆栈溢出)复制到文件中进行测试。 – 2012-08-12 17:02:01

+0

我想将复制的IP地址导入命令以自动执行多次重复的ssh登录。 x =剪贴板。然后我的脚本或别名将输入:ssh root @ x。我意识到它没有那么多的打字,但每天50次使它值得它 - 再加上我将合并的各种设备有不同的语法。 – user1541542 2012-08-12 17:18:16

回答

3

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

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

是的,非常感谢! – user1541542 2012-08-12 21:44:18

4

我通常使用pbpaste/pbcopy,但您可能需要查找某些历史记录以供您使用。

+0

+1在编辑之前回答原始问题。 – 2012-08-12 21:47:46

0

另一种选择是到位的别名的使用功能,功能可以使用参数:

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

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

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

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

使这里真正的消息是开始考虑在外壳的功能,而不是别名方面,根据bash的,因为手册页

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