在Shell脚本中连接并删除回车符

时间:2015-11-04 04:27:28

标签: shell http curl

在shell脚本中,我正在执行以下操作:

strong

我的预期输出是

locationUrl=$(grep -r "Location:" output.txt)
fullUrl="http://test.com/temp/${locationUrl##*/}"
tempUrl="$fullUrl/tests"
echo $tempUrl

但我明白了:

http://test.com/temp/226/tests

output.txt 如下所示:

/tests/test.com/temp/226

1 个答案:

答案 0 :(得分:2)

我怀疑output.txt中有carrige返回。通过tr -d '\r'管道输出将删除这些。我建议你试试:

locationUrl=$(grep -r "Location:" output.txt | tr -d '\r')
entries="entries"
fullUrl="http://test.com/temp/${locationUrl##*/}"
tempUrl="$fullUrl/tests"
echo $tempUrl

您的原始代码可能会输出http://test.com/temp/226^M/tests和^ M,导致您的终端开始重写当前行。您可以通过less

管道输出来检查这一点
$ sh test.s | less
http://test.com/temp/226^M/tests