Printf
在bash中使用星號重複列印字元
print '*' * 80
這個 python 片段列印了 80 個星號,我經常將它們用作日誌文件中的分隔符。
如何使用運算符重載在 bash 腳本中執行此操作?
在 shell (
ksh
,zsh
,bash
) 中,您可以執行以下操作:stars=$(printf '%*s' 80 '') echo "${stars// /*}"
可以
bash
選擇執行以下操作:printf -v stars '%*s' 80 '' echo "${stars// /*}"
說明:
printf
使用格式字元串%*s
,這意味著生成通過參數提供的長度的字元串。所以第一個參數 (80
) 指定長度,第二個參數指定''
要有效列印的字元串 ( ,一個空字元串),但空白填充到定義的寬度。請注意,這也可以表示為printf "%80s" ''
,儘管我使用參數化版本的長度來明確表示它可以是可變參數。