Bash

用 printf 重複一個變數

  • January 6, 2018

如果我使用以下命令:

printf "%.0s┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃\n" {1..3}

我得到這樣的輸出:

┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃
┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃
┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃

如何通過從變數中獲取重複字元來獲得相同的結果?

我嘗試了這種方法:

var="┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃"
printf '%.0s%s\n' {1..3} "$var"

但它不起作用,我最終得到了這個:

2
┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃

用這個:

$ var="┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃"

$ printf "$var"'%.0s\n' {1..3}

┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃
┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃
┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃
var="┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃   ┃"
printf '%s\n' "$var" "$var" "$var"

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