bash
  • alignment
  • 2017-05-13 9 views 0 likes 
    0

    私は "Made by:Keegan Kuhn"というバッシュスクリプトを作りました。しかし、テキストを中央に置くことはできません。初めにこのテキストが中央にないのはなぜですか?

    は、私は色とりどりのテキストを作るためにいくつかの色を定義します。

    # Defines colors 
    black='tput setaf 0' 
    red='tput setaf 1' 
    green='tput setaf 2' 
    yellow='tput setaf 3' 
    purple='tput setaf 4' 
    pink='tput setaf 5' 
    skyBlue='tput setaf 6' 
    white='tput setaf 7' 
    grey='tput setaf 8' 
    

    を、私は問題を抱えている部分は、最後の数行である:

    string="Disguise your MAC Address as that of any manufacturer as you want." 
    sleep .2; printf "%*s\n" $(((${#string} + $(tput cols))/2)) "$string" # Centers variable "string" 
    echo 
    string="$($skyBlue)Made by:$($green) Keegan Kuhn ($($red)keeganjk$($green))" 
    sleep .2; printf "%*s\n" $(((${#string} + $(tput cols))/2)) "$string" # Centers variable "string" 
    

    はなぜテキストが座っていますセンタリングせずに左に移動しますか?

    +0

    これは、中央に配置されていない2番目の文字列ですか? – 123

    答えて

    1

    "実際の"文字列は、色の定義によって余分な長さがありますが、これらの定義は端末には表示されません。それぞれの定義は長さが12で、4つの定義があるため、12x4 = 48,48/2 = 24です。最後の行を

    に変更する
    sleep .2; printf "%*s\n" $(((${#string} + 24 + $(tput cols))/2)) "$string" # Centers variable "string" 
    
    関連する問題