OnWorks Linux ve Windows Çevrimiçi İş İstasyonları

Logo

İş İstasyonları için Çevrimiçi Ücretsiz Barındırma

<Önceki | İçerik | Sonraki>

oku – Standart Girişten Değerleri Oku

The okumak Yerleşik komut, standart girdinin tek satırını okumak için kullanılır. Bu komut, klavye girişini veya yeniden yönlendirme kullanıldığında bir dosyadaki veri satırını okumak için kullanılabilir. Komut aşağıdaki sözdizimine sahiptir:

Okumak [-seçenekleri] [değişken...]

nerede seçenekleri aşağıda listelenen mevcut seçeneklerden bir veya daha fazlasıdır ve değişken giriş değerini tutmak için kullanılan bir veya daha fazla değişkenin adıdır. Değişken adı belirtilmezse kabuk değişkeni YANIT veri satırını içerir.

Temel olarak, okumak Standart girişteki alanları belirtilen değişkenlere atar. Tamsayı değerlendirme komut dosyamızı kullanacak şekilde değiştirirsek okumakşöyle görünebilir:


#! / Bin / bash


# read-integer: bir tamsayının değerini hesaplayın.


echo -n "Lütfen bir tam sayı girin -> " read int


if [[ "$int" =~ ^-?[0-9]+$ ]]; sonra if [ $int -eq 0 ]; Daha sonra

echo "$int sıfırdır."

başka

if [ $int -lt 0 ]; Daha sonra

echo "$int negatif."

başka

echo "$int pozitif."

fi

if [ $((int % 2)) -eq 0 ]; ardından echo "$int çifttir."

başka

echo "$int tek sayı."

fi

başka

echo "Giriş değeri bir tamsayı değil." >&2 çıkış 1

fi

#! / Bin / bash


# read-integer: bir tamsayının değerini hesaplayın.


echo -n "Lütfen bir tam sayı girin -> " read int


if [[ "$int" =~ ^-?[0-9]+$ ]]; sonra if [ $int -eq 0 ]; Daha sonra

echo "$int sıfırdır."

başka

if [ $int -lt 0 ]; Daha sonra

echo "$int negatif."

başka

echo "$int pozitif."

fi

if [ $((int % 2)) -eq 0 ]; ardından echo "$int çifttir."

başka

echo "$int tek sayı."

fi

başka

echo "Giriş değeri bir tamsayı değil." >&2 çıkış 1

fi


Biz kullanmak kaçırmak ile -n bir bilgi istemi görüntülemek için (çıktıda sondaki yeni satırı bastıran) seçeneği ve ardından okumak değişkene bir değer girmek için int. Bu betiği çalıştırmak şununla sonuçlanır:


[ben@linuxbox ~]$ tamsayı okuma

Lütfen bir tam sayı girin -> 5

5 pozitiftir.

5 tektir.

[ben@linuxbox ~]$ tamsayı okuma

Lütfen bir tam sayı girin -> 5

5 pozitiftir.

5 tektir.


read, bu komut dosyasında gösterildiği gibi girişi birden fazla değişkene atayabilir:


#! / Bin / bash

# read-multiple: klavyeden birden fazla değer oku echo -n "Bir veya daha fazla değer girin > "

var1 var2 var3 var4 var5'i oku


echo "var1 = '$var1'" echo "var2 = '$var2'" echo "var3 = '$var3'" echo "var4 = '$var4'" echo "var5 = '$var5'"

#! / Bin / bash

# read-multiple: klavyeden birden fazla değer oku echo -n "Bir veya daha fazla değer girin > "

var1 var2 var3 var4 var5'i oku


echo "var1 = '$var1'" echo "var2 = '$var2'" echo "var3 = '$var3'" echo "var4 = '$var4'" echo "var5 = '$var5'"


Bu scriptte en fazla beş değer atayıp görüntülüyoruz. Nasıl olduğunu fark et okumak farklı sayıda değer verildiğinde şöyle davranır:



[ben@linuxbox ~]$ çoklu okuma

Bir veya daha fazla değer girin > abcde

var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'e'

[ben@linuxbox ~]$ çoklu okuma Bir veya daha fazla değer girin > a var1 = 'a'

var2 = '' var3 = '' var4 = '' var5 = ''

[ben@linuxbox ~]$ çoklu okuma

Bir veya daha fazla değer girin > abcdefg

var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'efg'

[ben@linuxbox ~]$ çoklu okuma

Bir veya daha fazla değer girin > abcde

var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'e'

[ben@linuxbox ~]$ çoklu okuma Bir veya daha fazla değer girin > a var1 = 'a'

var2 = '' var3 = '' var4 = '' var5 = ''

[ben@linuxbox ~]$ çoklu okuma

Bir veya daha fazla değer girin > abcdefg

var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'efg'


If okumak beklenen sayıdan daha azını alırsa, ekstra değişkenler boştur, aşırı miktarda girdi ise tüm ekstra girdiyi içeren son değişkenle sonuçlanır.

Eğer bundan sonra hiçbir değişken listelenmemişse okumak komut, bir kabuk değişkeni, YANIT, tüm girdilere atanacaktır:



#! / Bin / bash

# read-single: birden fazla değeri varsayılan değişkene oku echo -n "Bir veya daha fazla değer girin > "

okumak


echo "CEVAP = '$REPLY'"

#! / Bin / bash

# read-single: birden fazla değeri varsayılan değişkene oku echo -n "Bir veya daha fazla değer girin > "

okumak


echo "CEVAP = '$REPLY'"


Bu betiği çalıştırmak şununla sonuçlanır:



[ben@linuxbox ~]$ tek okuma

Bir veya daha fazla değer girin > abcd

CEVAP = 'abcd'

[ben@linuxbox ~]$ tek okuma

Bir veya daha fazla değer girin > abcd

CEVAP = 'abcd'


 

OnWorks'te En İyi OS Bulut Bilişimi: