空间出现在linux中的https url中

时间:2015-02-21 19:35:07

标签: linux shell curl command-line-interface centos6

我正在以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

nodeip ,即 MYHOST 值,从数据库中获取并在同一脚本中将其传递到url。如

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

echo $ nodeip显示没有空格。

当echo nodeip 时,它显示没有空格,但不知何故,这个空间将进入url。 所以如何在网址中删除这个空格。

1 个答案:

答案 0 :(得分:1)

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

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

将显示sed s/ *//命令已删除空格。

如果没有,请编辑您的问题以包含

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