2012-08-12 48 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函數取代。