bash中的新线角色



我当前正在编写一个bash scipt,我需要在输出变量中串联结果。但是,我需要它们被Newline Charcater' n'分开,这似乎不起作用...

#!/bin/bash
for i in "./"*
do
#echo "$i"
tmp=$('/home/eclipseWorkspace/groundtruthPointExtractor/Debug/groundtruthPointExtractor' "./"$i) 
#echo $Output
#printf "$i $Outputn">> output.txt
Output=$Output$(printf $'n %s %s' "$i" "$tmp" )
done
echo $Output
echo $Output> output.txt

看起来好像

echo" $ str" works

因为当您不用引号打印字符串时,newline会转换为空格!

您可以跳过单个参数中的输出

DIR=/home/eclipseWorkspace/groundtruthPointExtractor/Debug
for i in *; do
    printf "%s %sn" "$i" "$("$DIR/groundtruthPointExtractor" "$i")"
done | tee output.txt

printf在一行上输出文件名和程序输出。前循环中所有运行的汇总输出均以tee管道,将输出写入命名文件和标准输出。

echo默认情况下不会解释后斜切字符(例如 n)。使用:

echo -e $Output

-e     enable interpretation of backslash escapes

相关内容

  • 没有找到相关文章

最新更新