2016-06-03 13 views
5

Bash'de basit bir seçim menüsü oluşturdum. Şu anda şöyle (sekmeleri ile) yatay menü görüntüleyen:Bash Menü Seçme Sekmeler olmadan biçimlendirme

1) Create a VM from scratch 3) Command-line Usage 
2) Management Menu   4) Quit 

Böyle bakmak listesi istiyorsunuz:

1) Create a VM from scratch 
2) Management Menu 
3) Command-line Usage  
4) Quit 

UPDATE:

PS3="Please choose a valid option : " 
OPTIONS=("Create a VM from scratch" "Management Menu" "Command-line Usage" "Quit") 
select opt in "${OPTIONS[@]}"; do 
    case $opt in 
      "Create a VM from scratch") 
       createit 
       exit 
       ;; 
      "Management Menu") 
       mgmtmenu 
       exit 
       ;; 
      "Command-line Usage ") 
       help 
       ;; 
      "Quit") 
       exit 
       ;; 
      *) echo invalid option;; 
    esac 
done 
: İşte benim kod

Seçme menüsünü her seçenekle kendi satırında nasıl görüntüleyebilirim?

+1

Eğer mevcut menü oluşturmak için kullanılan kod gönderir misiniz? Ayrıca, [bu bağlantı] (http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-9.html) sizin gereksinimlerinize cevap veriyor gibi görünüyor. – Aaron

+0

@Aaron: Sağladığınız bağlantı, op gereksinimini karşılamıyor. Ben 8 ile test ettim. – sjsam

+1

Peki, 'select' menüsünü görüntüleme şeklini etkileyen bazı ortam değişkenleri olabilir. – Aaron

cevap

6

Bash, select tarafından okunan $COLUMNS ortam değişkenini tanımlar.

bash en man görüldüğü gibi

:

COLUMNS 
     Used by the select compound command to determine the terminal 
     width when printing selection lists. Automatically set if the 
     checkwinsize option is enabled or in an interactive shell upon 
     receipt of a SIGWINCH. 
+0

Teşekkürler bir demet! O bash adam sayfası büyük bir cevap :-) İlginç 'COLUMNS' benim kabuğunda varsayılan olarak tanımlı değil, biraz :) ağız –

+0

Büyük bir iştir. Sadece senaryona eklendi ve bir çekicilik gibi çalışıyor. evet – sjsam

+0

@KenJ :-), ben (sizin 'man' çağrı cihazı less'' ise '/ select') select'' arayarak buldum – Aaron