OnWorks Linux و Windows Online WorkStations

الشعار

استضافة مجانية على الإنترنت لمحطات العمل

<السابق | المحتويات | التالي>

قراءة - قراءة القيم من الإدخال القياسي

اقرأ يتم استخدام الأمر المدمج لقراءة سطر واحد من الإدخال القياسي. يمكن استخدام هذا الأمر لقراءة إدخال لوحة المفاتيح أو ، عند استخدام إعادة التوجيه ، سطر بيانات من ملف. الأمر له الصيغة التالية:

اقرأ [-الخيارات] [متغير...]

أين الخيارات هو واحد أو أكثر من الخيارات المتاحة المدرجة أدناه و متغير هو اسم واحد أو أكثر من المتغيرات المستخدمة للاحتفاظ بقيمة الإدخال. إذا لم يتم تقديم اسم متغير ، فسيتم توفير متغير shell الرد يحتوي على خط البيانات.

في الأساس، اقرأ يخصص الحقول من الإدخال القياسي إلى المتغيرات المحددة. إذا قمنا بتعديل سكربت التقييم الصحيح لاستخدامه اقرأ، قد يبدو كالتالي:


#! / بن / باش


# read-صحيح: أوجد قيمة عدد صحيح.


صدى -n "الرجاء إدخال عدد صحيح ->" قراءة int


إذا [["$ int" = ~ ^ -؟ [0-9] + $]] ؛ ثم إذا [$ int -eq 0]؛ من ثم

صدى "$ int تساوي صفر."

آخر

إذا [$ int -lt 0]؛ من ثم

صدى "$ int سلبي."

آخر

صدى "$ int هو إيجابي".

fi

إذا [$ ((int٪ 2)) -eq 0] ؛ ثم صدى "$ int حتى."

آخر

صدى "$ int غريب."

fi

فاي آخر

صدى "قيمة الإدخال ليست عددًا صحيحًا." > & 2 الخروج 1

fi

#! / بن / باش


# read-صحيح: أوجد قيمة عدد صحيح.


صدى -n "الرجاء إدخال عدد صحيح ->" قراءة int


إذا [["$ int" = ~ ^ -؟ [0-9] + $]] ؛ ثم إذا [$ int -eq 0]؛ من ثم

صدى "$ int تساوي صفر."

آخر

إذا [$ int -lt 0]؛ من ثم

صدى "$ int سلبي."

آخر

صدى "$ int هو إيجابي".

fi

إذا [$ ((int٪ 2)) -eq 0] ؛ ثم صدى "$ int حتى."

آخر

صدى "$ int غريب."

fi

فاي آخر

صدى "قيمة الإدخال ليست عددًا صحيحًا." > & 2 الخروج 1

fi


نستخدم صدى مع الالجائزة -n الخيار (الذي يمنع السطر الجديد اللاحق عند الإخراج) لعرض موجه ، ثم استخدم اقرأ لإدخال قيمة للمتغير مادبا. يؤدي تشغيل هذا البرنامج النصي إلى ما يلي:


[me @ linuxbox ~] $ قراءة عدد صحيح

الرجاء إدخال عدد صحيح -> 5

5 إيجابية.

5 غريب.

[me @ linuxbox ~] $ قراءة عدد صحيح

الرجاء إدخال عدد صحيح -> 5

5 إيجابية.

5 غريب.


يمكن للقراءة تعيين مدخلات لمتغيرات متعددة ، كما هو موضح في هذا البرنامج النصي:


#! / بن / باش

# read-multiple: قراءة قيم متعددة من echo -n "أدخل قيمة واحدة أو أكثر>"

قراءة var1 var2 var3 var4 var5


صدى "var1 = '$ var1'" echo "var2 = '$ var2'" echo "var3 = '$ var3'" echo "var4 = '$ var4'" echo "var5 = '$ var5'"

#! / بن / باش

# read-multiple: قراءة قيم متعددة من echo -n "أدخل قيمة واحدة أو أكثر>"

قراءة var1 var2 var3 var4 var5


صدى "var1 = '$ var1'" echo "var2 = '$ var2'" echo "var3 = '$ var3'" echo "var4 = '$ var4'" echo "var5 = '$ var5'"


في هذا البرنامج النصي ، نقوم بتعيين ما يصل إلى خمس قيم وعرضها. لاحظ كيف اقرأ تتصرف عند إعطاء أرقام مختلفة من القيم:



[me @ linuxbox ~] $ قراءة متعددة

أدخل قيمة واحدة أو أكثر> abcde

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

[me @ linuxbox ~] $ قراءة متعددة أدخل قيمة واحدة أو أكثر> a var1 = 'a'

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

[me @ linuxbox ~] $ قراءة متعددة

أدخل قيمة واحدة أو أكثر> abcdefg

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

[me @ linuxbox ~] $ قراءة متعددة

أدخل قيمة واحدة أو أكثر> abcde

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

[me @ linuxbox ~] $ قراءة متعددة أدخل قيمة واحدة أو أكثر> a var1 = 'a'

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

[me @ linuxbox ~] $ قراءة متعددة

أدخل قيمة واحدة أو أكثر> abcdefg

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


If اقرأ يتلقى عددًا أقل من العدد المتوقع ، وتكون المتغيرات الإضافية فارغة ، بينما ينتج عن المقدار الزائد من المدخلات المتغير النهائي الذي يحتوي على كل المدخلات الإضافية.

إذا لم يتم سرد أي متغيرات بعد اقرأ أمر ، متغير شل ، الرد، سيتم التوقيع على جميع المدخلات:



#! / بن / باش

# read-single: قراءة قيم متعددة في المتغير الافتراضي echo -n "أدخل قيمة واحدة أو أكثر>"

اقرأ


صدى "REPLY = '$ REPLY'"

#! / بن / باش

# read-single: قراءة قيم متعددة في المتغير الافتراضي echo -n "أدخل قيمة واحدة أو أكثر>"

اقرأ


صدى "REPLY = '$ REPLY'"


يؤدي تشغيل هذا البرنامج النصي إلى ما يلي:



[me @ linuxbox ~] $ قراءة واحدة

أدخل قيمة واحدة أو أكثر> ا ب ت ث

رد = 'abcd'

[me @ linuxbox ~] $ قراءة واحدة

أدخل قيمة واحدة أو أكثر> ا ب ت ث

رد = 'abcd'


 

أفضل الحوسبة السحابية لنظام التشغيل في OnWorks: