ssh執行單行命令 alias 失效

場景

使用ssh命令鏈接遠程服務器後執行.bashrc中定義的alias命令, 提示命令不存在.

ssh [email protected] ll
# ll: command not found

但是使用ssh命令登錄後, 在交互界面是可以正常執行的.

解決

因爲shell在非交互模式下, alias默認是不加載的. 不過可以通過shopt來修改擴展選項的開關. 因此, 解決方式就是我們在加載alias之前將其開啓就好啦. 修改.bashrc如下:

# 判斷當前是交互界面
# 當然了, 要是不判斷直接打開也沒什麼問題
if [ -z "$PS1" ]; then
	# 強行將 alias 擴展開啓
  shopt -s expand_aliases
fi
alias ll="ls -l"

OK, 這個時候再執行命令ssh [email protected] ll, 就能正常看到結果啦

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章