我有一段这样的代码:
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 | |