当前位置:  开发笔记 > 编程语言 > 正文

远程主机上的Bash命令替换

如何解决《远程主机上的Bash命令替换》经验,为你挑选了1个好方法。

我正在尝试运行一个bsh脚本ssh到远程主机并停止正在运行的单个docker容器.

#!/usr/bin/env bash

set -e

ssh  <

但是,我收到以下错误:

stop.sh: line 4: docker: command not found

当我手动执行此操作(ssh到机器,运行命令)一切都很好,但是当尝试通过脚本执行此操作时,我得到错误.我猜我的命令替换语法是不正确的,我搜索并尝试了各种报价等但无济于事.

谁能指出我哪里出错?



1> Charles Duff..:

启动heredoc时使用<<'EOF'(或<<\EOF- 仅引用第一个字符将具有相同的效果)以防止在本地评估其扩展.


BTW,就个人而言,我的写法有点不同:

#!/bin/sh -e
ssh "$1" bash <<'EOF'
{ read; read container _; } < <(docker ps)
docker stop "$container"
EOF

第一个read消耗第一行docker ps输出; 第二列仅提取第一列 - 仅使用bash builtins.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有