ssh远程执行shell 怎么变成本地执行了呢

zgw06629 发布于 01/06 15:02
阅读 437
收藏 0
ssh

服务器上执行如下命令

# oldId=$(/usr/bin/python3 /usr/bin/huawei-anquanzu.py list | /usr/bin/awk /办公网/'{print $1}') && echo $oldId
c8ef4170-8aa2-4378-84e1-488b9fa64c97

正常 但是本地 先ssh到服务器上 再执行同样的命令 就不行

➜  ~ ssh root@119.3.xxx.xxx "oldId=$(/usr/bin/python3 /usr/bin/huawei-anquanzu.py list | /usr/bin/awk /办公网/'{print $1}') && echo $oldId"
/Library/Developer/CommandLineTools/usr/bin/python3: can't open file '/usr/bin/huawei-anquanzu.py': [Errno 2] No such file or directory

不知道为什么python3变成我本地的了 即似乎并没有在服务器上执行 还是在我本地执行的 

➜  ~ ls -lt /Library/Developer/CommandLineTools/usr/bin/python3
lrwxr-xr-x  1 root  wheel  67 May  3  2021 /Library/Developer/CommandLineTools/usr/bin/python3 -> ../../Library/Frameworks/Python3.framework/Versions/3.8/bin/python3

问 怎么才能让这个命令在服务器上执行呢?

加载中
0
李笑石-okx
李笑石-okx

你的第二个命令 在真正执行前,会先在本地将$括号部分计算出来。

你外层换单引号内存用双引号试试

0
zgw06629
zgw06629

李笑石-okex 方案可行 改成如下的命令即可

# 注意 $1 要转义 否则输出整行
➜  ssh root@119.3.xxx.xxx 'oldId=$(/usr/bin/python3 /usr/bin/huawei-anquanzu.py list | /usr/bin/awk /办公网/"{print \$1}") && echo $oldId'
6d8ed892-68e1-4867-b161-deee1f78312b

 

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部