2016-04-03 13 views
1

çoklu bash değişkenleri nasıl atanır? read -p "ENTER 1 - 5 WORDS" v1 v2 v3 v4 v5 kullanımı, komut satırına yazarak v değişkenlerinin her birine değer atamamı sağlar. Bu en pratik yaklaşım mı? Daha fazla sayıda değişken atamak istediğimi varsayalım. Her birini aynı şekilde listeleyebilir miyim? Çalışmamış olan read -p "ENTER 1-20 WORDS" {v1..v20} denedim.Kullanıcı girdisinden

cevap

2

v, dizinin bir parçası değildir. Bu deneyin:

read -p "ENTER 1-20 WORDS" v{1..20} 
1
Sen read -a ile bir dizi haline okumak isteyebilirsiniz

:

$ read -a arr -p "Enter words: " 
Enter words: v1 v2 v3 v4 v5 
$ echo "${arr[@]}" 
v1 v2 v3 v4 v5 
$ read -a arr -p "Enter words: " 
Enter words: v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 
$ echo "${arr[@]}" 
v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 

Bu kabuk sözcük bölme kullanır ve dizinin arr girdi atar elemanları daha sonra kullanarak erişilebilir ${arr[0]}, ${arr[1]} vs.

Asıl avantajı, dizinin girdiğiniz kadar çok öğeye sahip olması ve kaç tane olacağını önceden bilmenizdir.

+0

Biraz daha genişleyebilir misiniz? Anlamakta zorlanıyorum. Örneğin, varsayalım, bu dizelerin ne olacağına veya girilecek dizelerin sayısına dair önceden belirlenmiş bir nosyona sahip olmaksızın girilen çoklu dizeleri aramak için 'grep'i kullanmak istedim. Gerekirse orijinal soruyu güncelleyebilirim. –

+0

@ user556068 Grep'lemek istediğiniz şeye bağlıdır: tüm terimler veya bunların herhangi biri. [Bu soru] (http://stackoverflow.com/questions/36275421/how-to-make-a-script-to-make-multiple-greps-over-a-file) birden fazla aramadan bir grep komutu oluşturmayı soruyor terimleri. Ya da tam olarak ne olduğunu tam olarak anlamadınız mı? –

+0

"Ana avantajı, dizinin girdiğiniz kadar çok sayıda öğeyi tutması ve kaç tane olacağını önceden bilmenizdir." Yani, dizi değişkenini kullanarak belirsiz sayıda kullanıcı tanımlı terimin herhangi birini ve/veya tümünü greplemek istediysem, bunu nasıl yapacağım? Örneğin, Çalıştırma 1'de: 3 rastgele terim grep istiyorum. Çalıştırma 2'de: Farklı bir 7 rastgele terim kümesini sunmak istiyorum. 3. çalışmada: 4 rastgele terim grep istiyorum. –

İlgili konular