簡體   English   中英

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

[英]bash: printf (“%.s ”) doesn't keep whitespaces after the 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                                       |    |

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM