次のように、heredocで出力をローカル変数に設定しようとしています。
REMOTE_OUTPUT=$(ssh remote@server /bin/bash << EOF
find my/path/ -type f -not -path my/path/*/ -type f -mtime -0 | while read filename; do
if grep "ERROR" $filename; then
filenamebase=$(basename "$filename")
echo -e "\n----------------------------------------------------------\n\n$filenamebase failure:\n"
grep -n "ERROR" "$filename" | sed G
fi
done
EOF)
ただし、 find&grep ループが正確で、実際に出力を返す必要がある場合でも、変数は空です。
(そうでなければ、heredocの出力をローカルファイルに書き込むことにも興味があります。)
ベストアンサー1
EOF
たとえば、タグを引用するか、変数がリモート<<\EOF
で渡される前に評価されるのをやめる必要があります。<<'EOF'
代わりに say を使用して$filename
効果を確認できます。/bin/bash -v
/bin/bash
EOF
また、実際のマークアップを独自の行に配置し、最後の行を)
次の行に配置する必要があります。