Printf

在bash中使用星號重複列印字元

  • June 27, 2016
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" '',儘管我使用參數化版本的長度來明確表示它可以是可變參數。

引用自:https://unix.stackexchange.com/questions/208875