Bash中的空白连接

时间:2011-10-07 23:23:14

标签: bash whitespace concatenation

问题很简单。

for i in `seq $begin $progress_length` ; do
  progress_bar=$progress_bar'#'
done

for i in `seq $middle $end` ; do
  empty_space=$empty_space' '
done

我需要empty_space在进度条之后定位内容。我预计它将是x空格的字符串。但最后字符串是空的。我怎样才能创建x空格字符串?

3 个答案:

答案 0 :(得分:7)

问题可能是因为$empty_space只有空格。然后,要输出它们,你必须用双引号括起来:

echo "${empty_space}some_other_thing"

您可以使用printf尝试更有趣的输出,例如获取多个空格。例如,要写20个空格:

v=`printf '%20s' ' '`

答案 1 :(得分:1)

可以使用参数替换创建字符串。 替换$ {str:offset:length}返回str:

的子字符串
space80='                                                                                '
hash80='################################################################################'

progress_bar=${hash80:0:$progress_length-$begin+1}
empty_space=${space80:0:$end-$middle+1}

echo -n "$empty_space$progress_bar"

答案 2 :(得分:0)

我理解你的问题,因为我完全一样。

我的解决方案是连接一个临时字符而不是空格,例如,然后,最后用空格替换所有出现的sed

echo $myString | sed 's/☼/ /g'

我希望它会对你有所帮助!