場景
使用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
, 就能正常看到結果啦