我試圖運行一個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之前。 –