我正在尝试运行一个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.