Bash脚本远程执行sed命令

Bash script remote execution sed command

我试图在远程机器上执行以下脚本,但在执行 sed 命令时输出没有添加“\n”。但是,如果我在正常工作之外执行相同的 sed 命令。 我尝试在 sed 命令中添加 \$ 而不是将 \n 添加到输出中。有什么想法吗?


set -e
set -o pipefail

ssh "$host" << EOF

  temp_working_dir=/tmp/working_dir
  mycert_path=${temp_working_dir}/mycert/

  cert=$(cat "${mycert_path}"/cert.pem | sed 's/$/\n/' | tr -d '\n')

  echo "$cert" > /tmp/cert
 
EOF

逃避逃避很累

您的 sed 脚本还需要一个转义反斜杠:'s/$/\n/g'

set -e
set -o pipefail

ssh "${host}" << EOF

    temp_working_dir=/tmp/working_dir
    mycert_path=${temp_working_dir}/mycert

    cert=$(sed 's/$/\\n/g' "${mycert_path}/cert.pem" | tr -d '\n')

    echo "$cert" > /tmp/cert
EOF