כיצד לקבל קלט ממשתמש בסקריפט Bash [טכניקות מתקדמות]

Kyzd Lqbl Qlt Mmstms Bsqrypt Bash Tknyqwt Mtqdmwt



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

כיצד לקבל קלט ממשתמש בסקריפט Bash [טכניקות מתקדמות]

עם פקודת הקריאה, אתה יכול לקחת קלט, אבל האם אתה יודע שאתה יכול לקחת קלט מרובים? בואו ניקח דוגמה כדי לקבל מידע מעמיק. נניח שאנו רוצים ליצור סקריפט לביצוע חישוב אריתמטי באמצעות מספרים מרובים (A, B, C, D, E):







#!/bin/bash

הֵד 'אנא הזן שלושה מספרים'

לקרוא אבגדה

סְכוּם =$ ( ( A+B+C+D+E ) )

הֵד 'תוספת היא סכום $ '



לְהַכפִּיל =$ ( ( א * ב * ג * ד * ו ) )

הֵד 'כפל הוא $ להכפיל '



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







אם אינך רוצה ליצור הצהרת הד נפרדת, תוכל להוסיף אותה בפקודת הקריאה באמצעות האפשרות -p:

#!/bin/bash

לקרוא -עמ' 'אנא הזן את שמך וגילך:' גיל שם



אם [ גיל $ -לט 17 ]

לאחר מכן

הֵד 'סליחה!! אינך זכאי לקורס'



אַחֵר

הֵד 'מעולה!! אתה זכאי לקורס'

לִהיוֹת



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

קח קלט באמצעות Stdin (קלט סטנדרטי)

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

#!/bin/bash

הֵד 'פרטים על הגשת העמלות:'



חתול / dev / סטדין | גזירה '' 1 , 4 | סוג

סקריפט זה מספק את התוצאה הבאה:

מסיימים

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