bash:printf(“%。s”)在s之后不保留空格

时间:2014-02-18 23:49:02

标签: bash printf whitespace

我有一段这样的代码:

printf "%.s  "  $(seq 1 $count)

它实际上属于其他条件,它的工作是打印出来 whitespaces $ count times ..

如果输入这样的字符串,它可以正常工作:

printf "%.shelloworld  "  $(seq 1 $count)

但不是当我只是放入空格时。

有任何解决方法吗?

1 个答案:

答案 0 :(得分:1)

适合我:

# printf "%.s  "  $(seq 1 10) | hexdump -C
00000000  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000010  20 20 20 20                                       |    |

这是输入的完全命令,还是发生了其他变量替换?因为如果你没有引用特定的变量扩展,你似乎会遇到的确切事情会发生:

# frm="%.s  "; printf $frm $(seq 1 10) | hexdump -C
[no output]

鉴于:

# frm="%.s  "; printf "$frm" $(seq 1 10) | hexdump -C
00000000  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000010  20 20 20 20                                       |    |