Ksh

如何在已列印輸出的左右列印

  • August 29, 2013

我有一個命令說printf "%5s1",它的輸出是:

   1

如何列印已列印2的左側數字3和右側數字1。因此,輸出如下所示:

  213

所以,這裡有一個條件1已經使用 command 列印出來了printf "%5s1"

我試過使用下面的命令,

printf "%5s1";printf "\r%4s2%1s3\n"

但這會覆蓋現有的輸出1,我得到低於輸出。

  2 3

假設我必須先使用,如何在不失去它1的情況下列印已列印數字的右側?我正在尋找類似的東西:printf``printf "%5s1"

printf "%5s1";printf "\r%4s2???\n"
left=$(tput cub1) right=$(tput cuf1)
printf %5s1; printf '%s\n' "$left${left}2${right}3"

細節

來自Bash 提示 HOWTO

tput cub1
move left one space

tput cuf1
non-destructive space (move right one space)

只需顛倒您列印的順序並首先在右側列印您需要的字元串:

printf "%5s1";printf "3\r%4s2\n"

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