Ինչպե՞ս օգտագործել Bash կարդալու հրամանը:


Read հրամանը Bash սկրիպտավորման ամենահիմնական հրամաններից մեկն է: Այն օգտագործվում է օգտվողից կամ ֆայլից մուտքագրում կարդալու համար: Այս հոդվածում մենք կուսումնասիրենք, թե ինչպես արդյունավետ օգտագործել կարդալ հրամանը՝ մի քանի օրինակներով և դրանց արդյունքով:

Read Command-ի հիմնական օգտագործումը

Read հրամանի ամենահիմնական օգտագործումը օգտվողից մուտքագրումն է: Ահա մի պարզ օրինակ −

Օրինակ

echo "Please enter your name: "
read name
echo "Hello, $name"

Երբ գործարկում եք այս սկրիպտը, այն ձեզ հուշում է մուտքագրել ձեր անունը: Ձեր անունը մուտքագրելուց հետո այն կողջունի ձեզ հաղորդագրությունով: Ահա արդյունքի օրինակ −

Արդյունք

Please enter your name: 
John
Hello, John

Բազմաթիվ մուտքերի ընթերցում

Read հրամանը կարող է նաև կարդալ մի քանի մուտքեր միանգամից: Ահա մի օրինակ -

Օրինակ

echo "Enter your first and last name: "
read first_name last_name
echo "Hello, $first_name $last_name"

Այս սկրիպտում read հրամանը կարդում է երկու մուտք և դրանք վերագրում է համապատասխանաբար first_name և last_name: Ահա արդյունքի օրինակ −

Արդյունք

Enter your first and last name: 
John Doe
Hello, John Doe

Օգտագործելով հուշում կարդալու հրամանով

Կարող եք նաև օգտագործել -p տարբերակը կարդալ հրամանի հետ՝ մուտքագրումը կարդալուց առաջ հուշում ցուցադրելու համար: Ահա մի օրինակ -

Օրինակ

read -p "Enter your name: " name
echo "Hello, $name"

Այս սկրիպտում կարդալ հրամանը ցուցադրում է «Enter your name:» հուշումը, այնուհետև կարդում է մուտքագրումը: Ահա արդյունքի օրինակ −

Արդյունք

Enter your name: John
Hello, John

Ֆայլից մուտքագրման ընթերցում

Read հրամանը կարող է օգտագործվել նաև ֆայլից մուտքագրումը կարդալու համար: Ահա մի օրինակ -

while read line
do
   echo $line
done < file.txt

Այս սկրիպտում read հրամանը կարդում է յուրաքանչյուր տող file.txt ֆայլից, իսկ echo հրամանը տպում է յուրաքանչյուր տող: Արդյունքը կլինի file.txt-ի բովանդակությունը:

Ընթերցում է մուտքագրումը ժամանակի ընդմիջումով

Read հրամանը կարող է օգտագործվել նաև ժամանակի դադարի դեպքում: Եթե օգտագործողը մուտքագրում չտրամադրի նշված ժամկետում, սկրիպտը կշարունակվի: Ահա մի օրինակ -

read -p "You have 5 seconds to enter your name: " -t 5 name
echo "Hello, $name"

Այս սկրիպտում, եթե օգտատերը 5 վայրկյանում չմտնի իր անունը, սկրիպտը կշարունակվի և կտպագրի «Բարև», առանց անվանման:

Մուտքի ընթերցում զանգվածի մեջ

-a տարբերակը թույլ է տալիս կարդալ մուտքագրումը զանգվածի մեջ: Ահա մի օրինակ -

Օրինակ

echo "Enter three numbers separated by space: "
read -a numbers
echo "The numbers are: ${numbers[0]}, ${numbers[1]}, ${numbers[2]}"

Այս սկրիպտում read հրամանը կարդում է երեք մուտք և դրանք վերագրում զանգվածի թվերին: Ահա արդյունքի օրինակ −

Արդյունք

Enter three numbers separated by space: 
10 20 30
The numbers are: 10, 20, 30

Ընթերցում է մուտքագրում առանց հետադարձ սլաքի մեկնաբանության

-r տարբերակը թույլ է տալիս կարդալ մուտքագրումը առանց հետադարձ կտրվածքի մեկնաբանության: Ահա մի օրինակ -

Օրինակ

read -r -p "Enter a string: " str
echo "You entered: $str"

Այս սկրիպտում, եթե դուք մուտքագրեք տող հետշեղով, կարդալ հրամանը չի մեկնաբանի հետին կտրվածքը: Ահա արդյունքի օրինակ −

Արդյունք

Enter a string: Hello\ World
You entered: Hello\ World

Առանց -r տարբերակի, հետին կտրվածքը կմեկնաբանվի և չի տպվի −

Օրինակ

read -p "Enter a string: " str
echo "You entered: $str"

Արդյունք

Enter a string: Hello\ World
You entered: Hello World

Ներածման ընթերցում սահմանազատիչով

-d տարբերակը թույլ է տալիս սահմանազատիչ նշել մուտքագրումը դադարեցնելու համար: Ահա մի օրինակ -

Օրինակ

read -d ';' -p "Enter a string (end with ;): " str
echo "You entered: $str"

Այս սկրիպտում read հրամանը կշարունակի կարդալ մուտքագրումը այնքան ժամանակ, մինչև այն չհանդիպի ստորակետին: Ահա արդյունքի օրինակ.

Արդյունք

Enter a string (end with ;): Hello World;
You entered: Hello World

Լուռ ռեժիմ

-s տարբերակը թույլ է տալիս Ձեզ կարդալ մուտքագրումը լուռ ռեժիմով, որն օգտակար է, երբ խնդրում եք զգայուն տեղեկություններ, ինչպիսիք են գաղտնաբառերը: Ահա մի օրինակ -

Օրինակ

read -sp "Enter your password: " password
echo -e "
Your password length is: ${#password}"

Այս սկրիպտում կարդալ հրամանը կարդում է գաղտնաբառը՝ առանց այն էկրանին ցուցադրելու: Այնուհետև տպագրվում է գաղտնաբառի երկարությունը: Ահա արդյունքի օրինակ −

Արդյունք

Enter your password: 
Your password length is: 8

Ծանոթագրություն - Փաստացի գաղտնաբառը չի ցուցադրվում, երբ մուտքագրում եք այն:

Ընթերցանություն ֆայլից տող առ տող

Կարող եք նաև օգտագործել կարդալ հրամանը՝ ֆայլից տող առ տող կարդալու և յուրաքանչյուր տողում գործողություններ կատարելու համար: Ահա մի օրինակ -

line_number=1
while read -r line
do
   echo "Line $line_number: $line"
   ((line_number++))
done < file.txt

Այս սկրիպտում read հրամանը կարդում է յուրաքանչյուր տող file.txt ֆայլից, իսկ echo հրամանը տպում է տողի համարը և տողը: Արդյունքը կախված կլինի file.txt-ի բովանդակությունից:

Մուտքի ընթերցում լռելյայն արժեքով

-i տարբերակը թույլ է տալիս նշել լռելյայն արժեք, որը կօգտագործվի, եթե օգտագործողը մուտքագրում չտրամադրի: Ահա մի օրինակ -

Օրինակ

read -p "Enter your name: " -i "John Doe" name
echo "Hello, $name"

Այս սկրիպտում, եթե օգտատերը անուն չմտցնի, սկրիպտը որպես լռելյայն արժեք կօգտագործի «John Doe»: Ահա արդյունքի օրինակ −

Արդյունք

Enter your name: 
Hello, John Doe

Մուտքի ընթերցում ասոցիատիվ զանգվածում

-A տարբերակը թույլ է տալիս կարդալ մուտքագրումը ասոցիատիվ զանգվածի մեջ: Ահա մի օրինակ -

Օրինակ

declare -A person
read -p "Enter your name and age: " -a person
echo "Hello, ${person[0]}, you are ${person[1]} years old."

Այս սկրիպտում read հրամանը կարդում է երկու մուտք և դրանք վերագրում ասոցիատիվ զանգվածի անձին: Ահա արդյունքի օրինակ −

Արդյունք

Enter your name and age: 
John 25
Hello, John, you are 25 years old.

Այս օրինակները պետք է ձեզ լավ ըմբռնեն, թե ինչպես օգտագործել կարդալ հրամանը Bash սկրիպտավորման մեջ: Read հրամանը շատ բազմակողմանի է և կարող է օգտագործվել տարբեր ձևերով՝ ձեր սցենարներն ավելի ինտերակտիվ և օգտագործողի համար հարմար դարձնելու համար:

Եզրակացություն

Read հրամանը բազմակողմանի գործիք է Bash scripting-ում: Այն կարող է օգտագործվել օգտվողից կամ ֆայլից մուտքագրում կարդալու համար, և այն ունի մի քանի տարբերակներ, որոնք թույլ են տալիս հարմարեցնել դրա վարքագիծը: Հասկանալով, թե ինչպես արդյունավետ օգտագործել կարդալ հրամանը, դուք կարող եք ձեր Bash սկրիպտները դարձնել ավելի ինտերակտիվ և օգտագործողի համար հարմար: