[英]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.