n 열로 printf 하시겠습니까? [복사]

n 열로 printf 하시겠습니까? [복사]

이것:

dots=$(printf "%0.s." {1..10})

이것을 인쇄하세요:

...........

printfBash 에 들어가서 .s를 특정 열 위치로 인쇄하는 방법을 알고 싶습니다 . 예를 들어 30시작 열은 다를 것입니다.

예를 들어:

Add dots ....................

Add dots dots ...............

Add dots dots dots ..........

답변1

껍질에

$ n=30
$ dots=$(printf "%.0s." $(seq $n))
$ echo "$dots"
..............................

그래서:

$ n=30
$ str='Add dots '
$ dots=$(printf "%.0s." $(seq $((n-${#str})) ))
$ echo "$str$dots"
Add dots .....................

그리고:

$ n=30; str='Add dots dots '; dots=$(printf "%.0s." $(seq $((n-${#str})) )); echo "$str$dots"
Add dots dots ................

함수에서:

$ dots(){ printf "%s" "$2"; printf "%.0s." $( seq $(($1-${#2})) );echo; }
$ dots 30 "Add dots dots dots "
Add dots dots dots ...........

$ dots 40 "Add dots dots dots "
Add dots dots dots .....................

$ dots 33 "we hold these truths "
we hold these truths ............

관련 정보