Space 出现在 https url 中 linux

Space is appearing in https url in linux

我正在用centos写一个.sh文件。在脚本中,我将 curl commamd 写为

curl -u admin:final https://$nodeip:8089/services/cluster/config/config

但在 CLI 中它传递为

curl -u admin:final https:// MYHOST:8089/services/cluster/config/config

nodeipMYHOST 值,正在从数据库中获取并在同一脚本中将其传递到 url。作为

nodeip=`cat $root/dbtmpdn | sed -n '3p'`

echo $nodeip 显示没有 space.

当 echo nodeip 时,它显示没有 space 但不知何故这个 space 正在进入 url。 那么如何在 url.

中删除这个 space

根据我们在评论中的讨论,您可以替换当前代码

nodeip=`cat $root/dbtmpdn | sed -n '3p'`

nodeip=`cat $root/dbtmpdn | sed -n '3{s/^ *//;p;}'`

或者如果$root/dbtmpdn是一个文件,你可以简化为

nodeip=`sed -n '3{s/^ *//;p;}' $root/dbtmpdn`

并且如果您的 shell 支持它,请使用 "modern" 版本的命令替换。 (我相信我已经读到 centos 中的默认 shell 不支持 $(cmd_substituion),所以如果它不起作用,请坚持使用你的 `cmd sub`。)

nodeip=$(sed -n '3{s/^ *//;p;}' $root/dbtmpdn)

无论哪种情况,希望现在

echo X"$nodeip"Y

将显示 space 已被 sed s/ *// 命令删除。

如果不是,请编辑您的问题以包含

的输出
echo "X" `sed -n '3{p;q;}`  $root/dbtmpdn`