簡體   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