Loading

ssh执行单行命令 alias 失效

场景

使用ssh命令链接远程服务器后执行.bashrc中定义的alias命令, 提示命令不存在.

ssh root@10.0.0.1 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 root@10.0.0.1 ll, 就能正常看到结果啦

posted @ 2022-10-28 12:28  烟草的香味  阅读(352)  评论(0编辑  收藏  举报