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
我试图在远程机器上执行以下脚本,但在执行 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