在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
答案 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