OnWorks Linux ו-Windows Online WorkStations

לוגו

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

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

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

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

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

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

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


#! / bin / bash


# קריאה-שלמה: הערכת ערך של מספר שלם.


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


אם [[ "$int" =~ ^-?[0-9]+$ ]]; אז אם [ $int -eq 0 ]; אז

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

אחר

אם [$int -lt 0]; אז

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

אחר

הד "$int חיובי."

fi

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

אחר

הד "$int הוא אי-זוגי."

fi

פי אחר

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

fi

#! / bin / bash


# קריאה-שלמה: הערכת ערך של מספר שלם.


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


אם [[ "$int" =~ ^-?[0-9]+$ ]]; אז אם [ $int -eq 0 ]; אז

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

אחר

אם [$int -lt 0]; אז

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

אחר

הד "$int חיובי."

fi

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

אחר

הד "$int הוא אי-זוגי."

fi

פי אחר

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

fi


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


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

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

5 זה חיובי.

5 זה אי זוגי.

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

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

5 זה חיובי.

5 זה אי זוגי.


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


#! / bin / bash

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

קרא var1 var2 var3 var4 var5


הד "var1 = '$var1'" הד "var2 = '$var2'" הד "var3 = '$var3'" הד "var4 = '$var4'" הד "var5 = '$var5'"

#! / bin / bash

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

קרא var1 var2 var3 var4 var5


הד "var1 = '$var1'" הד "var2 = '$var2'" הד "var3 = '$var3'" הד "var4 = '$var4'" הד "var5 = '$var5'"


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



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

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

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

[me@linuxbox ~]$ קריאה מרובה הזן ערך אחד או יותר > a משתנה1 = 'א'

משתנה2 = '' משתנה3 = '' משתנה4 = '' משתנה5 = ''

[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 משתנה1 = 'א'

משתנה2 = '' משתנה3 = '' משתנה4 = '' משתנה5 = ''

[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: