gpt4 book ai didi

unix - 使用 SSH 在远程机器上发出多个命令的替代方法?

转载 作者:行者123 更新时间:2023-12-04 17:04:20 25 4
gpt4 key购买 nike

看来,在this question ,答案是用分号分隔语句。然而,如果我们使用多个 if 语句和复杂的引用字符串进行复杂的脚本编写,这可能会变得很麻烦。我会想。

我想另一种选择是简单地一个接一个地发出多个 SSH 命令,但这又会很麻烦,而且我没有设置公钥/私钥身份验证,所以这会要求输入密码很多次。

理想情况下,我喜欢的与交互式 shell 体验非常相似:在脚本中的某个时刻,您通过 ssh 进入@the_remote_server 并提示您输入密码,您输入(交互式),然后从那时起直到您的脚本出现问题“退出”命令,脚本中的所有命令都在远程机器上解释。

当然这是行不通的:

ssh user@host.com
cd some/dir/on/remote/machine
tar -xzf my_tarball.tgz
cd some/other/dir/on/remote
cp -R some_directory somewhere_else
exit

还有其他选择吗?我想我可以直接从我的脚本中取出那部分并将其粘贴到远程主机上的脚本中。嗯。现在我正在维护两个脚本。另外我想要一个小配置文件来保存默认值和其他东西,我也不想在两个地方维护它。

还有其他解决方案吗?

最佳答案

使用heredoc。

ssh user@host.com << EOF
cd some/dir/on/remote/machine
tar -xzf my_tarball.tgz
cd some/other/dir/on/remote
cp -R some_directory somewhere_else
EOF

关于unix - 使用 SSH 在远程机器上发出多个命令的替代方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6700890/

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