gpt4 book ai didi

bash - 将嵌套引用的变量传递给远程 ssh 命令

转载 作者:行者123 更新时间:2023-11-29 09:29:20 27 4
gpt4 key购买 nike

我有以下脚本来设置远程主机的主机名。

#!/bin/bash

ssh -T user@$1 << \EOF1
sudo sh -c "echo "hostname=\"$1\"" >> /etc/rc.conf"
sudo /etc/rc.d/hostname start
EOF1

当我运行 ./filename.sh host 时,没有填充主机名。如何将变量传递给远程执行命令?

最佳答案

如果分隔符完全未被引号括起来,则在 here-docs 中执行参数扩展。

所以在此处的文档中

ssh -T user@$1 << \EOF1

其中分隔符中的E被引号,$1没有展开:它作为$1传递给ssh,然后传递给。在远程执行中,$1 被替换为空字符串,因为没有位置参数。

如果您不引用 E$1 将在此处文档中展开:

ssh -T user@$1 << EOF1

关于bash - 将嵌套引用的变量传递给远程 ssh 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49483670/

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