我试图运行一个bash脚本,ssh到远程主机上并停止正在运行的单个docker容器。远程主机上的Bash命令替换
#!/usr/bin/env bash
set -e
ssh <machine> <<EOF
container=$(docker ps | awk 'NR==2' | awk '{print $1;}')
docker stop $container
EOF
不过,我得到以下错误:
stop.sh: line 4: docker: command not found
当我这样做手动(SSH到机器上,运行命令)一切都很好,但试图借助这样做时,一个脚本我得到错误。我想我的命令替换语法是不正确的,我搜索并尝试各种引号等,但无济于事。
任何人都可以指出我要出错的地方吗?
Heredocs执行其内容的参数扩展,因此您的'$(docker ps ...)'和'$ container'评估发生在代码获取到ssh的stdin之前。 –