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 @   烟草的香味  阅读(372)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示
主题色彩