我当前正在编写一个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