我正在编写一个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
答案 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