OnWorks Linux ו-Windows Online WorkStations

לוגו

אירוח מקוון בחינם עבור תחנות עבודה

<הקודם | תוכן | הבא>

קרא - קרא ערכים מתוך קלט סטנדרטי

אל האני לקרוא הפקודה מובנית משמשת לקריאת שורה אחת של קלט סטנדרטי. ניתן להשתמש בפקודה זו לקריאת קלט מקלדת או, כאשר מופעל ניתוב מחדש, שורת נתונים מקובץ. לפקודה יש ​​את התחביר הבא:

לקרוא [-אפשרויות] [משתנה...]

איפה אפשרויות היא אחת או יותר מהאפשרויות הזמינות המפורטות למטה ו משתנה הוא השם של משתנה אחד או יותר המשמשים לשמירה על ערך הקלט. אם לא מסופק שם משתנה, משתנה המעטפת תשובה מכיל את שורת הנתונים.

בעיקרון, לקרוא מקצה שדות מקלט סטנדרטי למשתנים שצוינו. אם נשנה את סקריפט הערכת המספרים השלמים שלנו לשימוש לקרוא, זה עשוי להיראות כך:


#! / bin / bash


# read-integer: הערך את הערך של מספר שלם.


echo -n "אנא הזן מספר שלם -> " read int


if [[ "$int" =~ ^-?[0-9]+$ ]]; אז אם [$int -eq 0]; לאחר מכן

echo "$int הוא אפס."

אחר

if [$int -lt 0]; לאחר מכן

echo "$int הוא שלילי."

אחר

echo "$int הוא חיובי."

fi

if [ $((int % 2)) -eq 0 ]; ואז הדהוד "$int הוא זוגי."

אחר

echo "$int הוא מוזר."

fi

פי אחר

echo "ערך הקלט אינו מספר שלם." >&2 יציאה 1

fi

#! / bin / bash


# read-integer: הערך את הערך של מספר שלם.


echo -n "אנא הזן מספר שלם -> " read int


if [[ "$int" =~ ^-?[0-9]+$ ]]; אז אם [$int -eq 0]; לאחר מכן

echo "$int הוא אפס."

אחר

if [$int -lt 0]; לאחר מכן

echo "$int הוא שלילי."

אחר

echo "$int הוא חיובי."

fi

if [ $((int % 2)) -eq 0 ]; ואז הדהוד "$int הוא זוגי."

אחר

echo "$int הוא מוזר."

fi

פי אחר

echo "ערך הקלט אינו מספר שלם." >&2 יציאה 1

fi


אנו משתמשים הד עם -n אפשרות (המדכאת את השורה החדשה הנגררת בפלט) להציג הנחיה, ולאחר מכן להשתמש לקרוא כדי להזין ערך עבור המשתנה int. הפעלת סקריפט זה מביאה לכך:


[me@linuxbox ~]$ קריאה-מספר שלם

נא להזין מספר שלם -> 5

5 זה חיובי.

5 זה מוזר.

[me@linuxbox ~]$ קריאה-מספר שלם

נא להזין מספר שלם -> 5

5 זה חיובי.

5 זה מוזר.


read יכול להקצות קלט למשתנים מרובים, כפי שמוצג בסקריפט זה:


#! / bin / bash

# read-multiple: קרא מספר ערכים מהד מקלדת -n "הזן ערך אחד או יותר > "

קרא את var1 var2 var3 var4 var5


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

#! / bin / bash

# read-multiple: קרא מספר ערכים מהד מקלדת -n "הזן ערך אחד או יותר > "

קרא את var1 var2 var3 var4 var5


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


בסקריפט זה אנו מקצים ומציגים עד חמישה ערכים. שים לב איך לקרוא מתנהג כאשר ניתן מספרים שונים של ערכים:



[me@linuxbox ~]$ קריאה-מרובה

הזן ערך אחד או יותר > אבגדה

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 ~]$ קריאה-מרובה

הזן ערך אחד או יותר > אבגדה

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 לקרוא מקבל פחות מהמספר הצפוי, המשתנים הנוספים ריקים, בעוד שכמות מוגזמת של קלט גורמת לכך שהמשתנה הסופי מכיל את כל הקלט הנוסף.

אם לא מופיעים משתנים אחרי ה- לקרוא פקודה, משתנה מעטפת, תשובה, יוקצה כל הקלט:



#! / bin / bash

# read-single: קרא מספר ערכים לתוך משתנה ברירת המחדל echo -n "הזן ערך אחד או יותר > "

לקרוא


echo "REPLY = '$REPLY'"

#! / bin / bash

# read-single: קרא מספר ערכים לתוך משתנה ברירת המחדל echo -n "הזן ערך אחד או יותר > "

לקרוא


echo "REPLY = '$REPLY'"


הפעלת סקריפט זה מביאה לכך:



[me@linuxbox ~]$ קריאה-סינגל

הזן ערך אחד או יותר > א ב ג ד

תשובה = 'abcd'

[me@linuxbox ~]$ קריאה-סינגל

הזן ערך אחד או יותר > א ב ג ד

תשובה = 'abcd'


 

מחשוב ענן מערכת ההפעלה המוביל ב-OnWorks: