gpt4 book ai didi

bash - 通过 SSH 执行命令时无法使用别名

转载 作者:行者123 更新时间:2023-11-29 08:54:18 31 4
gpt4 key购买 nike

我在 .bashrc 中注释掉了这一行:

# [ -z "$PS1" ] && return

现在别名被读取了,但我仍然无法执行它...:/

我们可以询问服务器是否定义了别名:

$ ssh server "cd /tmp && alias backup_tb"
alias backup_tb='pg_dump -U david tb > tb.sql'

但没有展开:

$ ssh server "cd /tmp && backup_tb"
bash: backup_tb: command not found

有什么想法吗?

最佳答案

引自 bash 的手册页: 当 shell 不是交互式时,别名不会展开,除非使用 shopt 设置了 expand_aliases shell 选项 ...

因此,IMO 最简单的方法是将以下几行放在 /home/<user>/.bashrc 的顶部文件:

# comment out the original line
# [ -z "$PS1" ] && return

if [ -z "$PS1" ]; then
shopt -s expand_aliases
# alias ls='ls --color=always'
# return
fi

保存并退出。现在你可以运行 ssh user@host "your_alias"成功。

关于bash - 通过 SSH 执行命令时无法使用别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22537699/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com