【发布时间】:2016-11-12 21:23:34
【问题描述】:
在 Unix 中将输出重定向到变量时遇到问题。
mobileTest.txt
abc.xyx.homepage:https://www.abc.xyz/h-offer/?fromms=1&LNX=KJHYU&oC=ABC
脚本:
#!/bin/bash
TEST_PAGE_KEY="abc.xyx.homepage"
grep -w $TEST_PAGE_KEY mobileTest.txt | cut -d':' -f2-|sed 's/[&/\]/\\&/g'
输出:这是正确的......
https:\/\/www.abc.xyz\/h-offer\/?fromms=1\&LNX=KJHYU\&oC=ABC
相比之下,在变量中捕获命令的输出时:
TEST_PAGE_VALUE=`grep -w $TEST_PAGE_KEY mobileTest.txt | cut -d':' -f2-|sed 's/[&/\]/\\&/g'`
echo $TEST_PAGE_VALUE
变量的输出:
https:&&www.abc.xyz&h-offer&?fromms=1&LNX=KJHYU&oC=ABC
当我将它分配给变量时,我不明白为什么输出不同(而不是添加反斜杠,而是用& 替换字符)。
【问题讨论】: