这是我正在尝试做的事情:
ssh andy@<ip_address> "cat .bash_aliases; sayhello"
Run Code Online (Sandbox Code Playgroud)
这是发生的事情:
alias sayhello="echo hello"
bash: sayhello: command not found
Run Code Online (Sandbox Code Playgroud)
为了更具体地解决我的问题,我试图
"sudo etherwake -i eth0 <mac_address>"通过ssh 调用命令- 这在我的本地计算机上执行(我认为),给出sudo: unable to resolve host [blabla]错误.似乎任何非标准bash命令的命令都由我的本地机器解析.
如果这就是发生的事情,我该如何解决它?如果没有,什么是如何解释呢?
通常,在脚本中使用别名不是一个好主意.
然而,我可以建议一种方法来做到这一点,但要记住它是多么不安全.
eval,开始了.
ssh remote_host "shopt -s expand_aliases ; source ~/.bash_aliases ; eval sayhello"
Run Code Online (Sandbox Code Playgroud)
默认情况下,仅为交互式shell启用别名扩展.打开它使用shopt -s命令.
无论如何,您需要将别名源代码发送到shell上下文中.
现在,您可以通过eval命令使用别名.
| 归档时间: |
|
| 查看次数: |
938 次 |
| 最近记录: |