bash:printf ( "%.s " ) 不会在 s 之后保留空格



我有一段这样的代码:

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

它实际上属于一个 else 条件,它的工作是打印出来空格$count次..

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

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

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

有什么解决方法吗?

对我有用:

# 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                                       |    |

相关内容

  • 没有找到相关文章

最新更新