我有一个带有一行的bash脚本:
for i in $(svn diff --summarize $REPO$OLD $REPO$NEW |awk '{print $0}');
do
print $i
输出:
A
https://domainname.com/projectxyz/uploads/Screen
shot
2012-05-08
at
1.57.50
PM.png
我需要的是单行字符串,如下所示:
"Ahttps://domainname.com/projectxyz/uploads/Screen shot 2012-05-08 at 1.57.50 PM.png"
注意:使用MAC OS
答案 0 :(得分:1)
尝试在子shell中添加引号,如下所示:
for i in "$(svn diff --summarize $REPO$OLD $REPO$NEW |awk '{print $0}')"
do
echo $i
done
编辑:
你能试试这个方法吗?
svn diff --summarize $REPOS@OLDREV $REPOS@NEWREV |
while read line
do
echo $line
done
答案 1 :(得分:0)
尝试类似:
for i in $(svn diff --summarize $REPO$OLD $REPO$NEW |awk '{print }');
do
print $i
打印整行。
答案 2 :(得分:0)
再次做了一些R& D之后,我发现它不是 awk 工具,而是 for 循环错误,默认情况下基于 IFS标记字符串变量值,默认为空格。即使awk返回整个字符串for循环,也会根据 IFS 进行拆分。因此,我在Mac OS上运行的解决方案是:
IFS=$'\n'
for i in $(svn diff --summarize $REPO$OLD $REPO$NEW |awk '{print $0}');
do
print $i
我仍然不知道为什么它在linux下工作但在没有设置 IFS
的MAC OS上工作