bash中的新行字符

时间:2014-01-24 13:07:02

标签: linux bash ubuntu newline

我正在编写一个bash scipt,我需要在输出变量中连接结果。但是我需要将它们与换行符'\ n'分开,这似乎不起作用......任何想法???

#!/bin/bash

for i in "./"*
do

#echo "$i"
tmp=$('/home/eclipseWorkspace/groundtruthPointExtractor/Debug/groundtruthPointExtractor' "./"$i) 
#echo $Output
#printf "$i $Output\n">> output.txt
Output=$Output$(printf $'\n %s %s' "$i" "$tmp" )
done
echo $Output
echo $Output> output.txt

3 个答案:

答案 0 :(得分:3)

看起来好像

echo“$ str”有效

因为当你打印不带引号的字符串时,换行符会被转换为空格!!!

答案 1 :(得分:2)

您可以跳过使用

在单个参数中累积输出
DIR=/home/eclipseWorkspace/groundtruthPointExtractor/Debug
for i in *; do
    printf "%s %s\n" "$i" "$("$DIR/groundtruthPointExtractor" "$i")"
done | tee output.txt

printf在一行输出文件名和程序输出。 for循环中所有运行的聚合输出通过管道传送到tee,将输出写入命名文件和标准输出。

答案 2 :(得分:0)

echo默认不解释反斜杠字符(如\ n)。使用:

echo -e $Output


-e     enable interpretation of backslash escapes