بش Script بابت نقشو ٺاھيندا

حڪم، نحو ۽ مثال

توهان هڪ بش اسڪرپٽ لکجي سگھو ٿا جهڙوڪ اهو رسم الخط حڪم لڪائي مان سڏيو ويندو آهي جڏهن ته اهو اشارو ملندو آهي. اهو طريقو استعمال ٿيندو آهي جڏهن ته لپيٽ پيٽرين جي قيمت (دليلن) جي لحاظ سان هڪ رسم الخط کي ٿوري مختلف فعل ڪرڻو پوندو.

مثال طور، توهان کي "اسيٽس.ش" جو نالو لپي ويندا آهن جيڪو فائل تي خاص عمل ڪندو آهي، جيئن ته سندس لفظن کي ڳڻڻ. جيڪڏهن توهان ڪيترن ئي فائلن تي هن اسڪرپٽ استعمال ڪرڻ جي قابل ٿي چاهيو، اهو بهترين طريقو آهي جيڪو فائل جو نالو دليل جي طور تي منتقل ڪري ٿو، ان ڪري توهان پروسيس ٿيڻ لاء سڀني فائلن لاء ساڳي لکيت استعمال ڪري سگهو ٿا. مثال طور، جيڪڏهن فائل جو نالو پروسيس ٿيڻ لاء "گيت فهرست"، توهان هيٺ ڏنل حڪم لائن داخل ڪري سگهنداسين:

shats.sh گيت ٺاهڻ

تقريبن $ 1، $ 2، $ 3، وغيره استعمال ڪندي هڪ رسم الخط جي اندر پهچيا ويا آهن، جتي $ 1 پهرين دليل، 2 سيڪنڊ کي ٻئي دليلن ڏانهن اشارو ڪيو آهي. هي هيٺين مثال ۾ بيان ڪيل آهي:

FILE1 = $ 1 wc $ فائل فائل

پڙهڻ لاء، متغير نالي سان متغير تفريح پهريون دليل ($ 1) جي قيمت ڏي، ۽ پوء هن متغير ($ FILE1) تي لفظ شمار استعمال ( wc ) سڏين ٿا.

جيڪڏهن توهان وٽ دليلن جي متغير نمبر آهي، توهان "$ @" متغير ڪي استعمال ڪري سگهو ٿا، جيڪو سڀني ان پٽ پيٽريمن جي هڪ صف آهي. ان جو مطلب توهان هڪ لاء لوپ استعمال ڪري سگھو ٿا جئين هر هڪ عمل تي عمل ڪريو، جيئن هيٺ ڏنل مثال بيان ڪيل آهي:

FILE1 لاء "$ @" ۾ wc $ FILE1 جاري ڪيو

هتي هڪ رسم الخط آهي ته هي رسم الخط کي حڪم واري لائين سان دلائل سان ڪيئن سڏين ٿا.

shats.sh

جيڪڏهن هڪ دلائل خالي آهي، توهان کي ان کي هڪ اڪيلو ڪوٽا سان ڳنڍڻ جي ضرورت آهي. مثال طور:

sh stats.sh 'songlist 1' 'songlist 2' 'گيت ڪسٽم' 3 '

اڪثر هڪ رسم الخط لکيو ويو آهي ته جيئن ته صارف جغرافيه جي استعمال سان ڪنهن آرٽيڪل ۾ نڪري سگھن ٿا. جھنگ واري طريقي سان، توھان ڪجھھ اختيارن جو اختياري پڻ ڪري سگھو ٿا.

چئي چئو ته توهان وٽ هڪ رسم الخط آهي جيڪو مخصوص پيٽرٽيز جي بنياد تي معلومات ڊيٽابيس مان حاصل ڪري ٿو، جهڙوڪ "صارف نام"، "تاريخ"، ۽ "پراڊڪٽ"، ۽ هڪ مخصوص "شڪل" ۾ رپورٽ ٺاهي ٿو. هاڻي توهان پنهنجو رسم الخط لکڻ چاهيو ٿا ته توهان ان پيچراڪن ۾ پاسورڊ ڪري سگهو ٿا جڏهن اسڪرپٽ سڏيو ويندو آهي. اهو شايد نظر اچي سگهي ٿو:

makereport -u jsmith -p نوٽ بڪس -d 10-20-2011 -f پي پي پي

بش هن فنڪشنلٽي کي "getopts" فنڪشن کي قابل بڻائي ٿو. مٿين مثال جي لاء، توھان هيٺين طور استعمال ڪري رھيا آھيون:

اهو هڪ دير-لوپ آهي جيڪو "getopts" جي فنڪشن ۽ هڪ نام کي "آپريٽرنگ" استعمال ڪندو آهي، انهي صورت ۾ "u: d: p: f:"، هن دليلن ذريعي تڪرار ڪيو. هلائيندڙ لوپ آپٽچرنگ جي ذريعي هلندو آهي، جنهن ۾ جغرافيات شامل آهي جو دلائل منظور ڪرڻ لاء استعمال ڪري سگهجي ٿو، ۽ متغير "اختيار" کي پرچم لاء مهيا ٿيل دليل ڏنل قيمت مهيا ڪري ٿو. انهي بيان جي بيان کي متغير "اختيارن" جي قيمت هڪ گلوبل متغير تائين ڏئي ٿو جيڪو سڀني دليلن کان پوء پڙهي سگهجي ٿو.

اسپيڊنگ ۾ رنگن جو مطلب اهو آهي ته قيمتون ساڳئي پرچم لاء گهربل آهن. مٿين مثالن ۾ سڀني جھنگ پٺيان ھڪڙو نوآبادا آھن: "u: d: p: f:". ان جو مطلب، سڀئي پرچم ھڪ قدر جي ضرورت آھي. جيڪڏهن، مثال طور، "ڊي" ۽ "ايف" جھنگ ھڪڙي قيمت جي توقع نه ڪئي وئي، آپٽروڊ "u: dp: f" ڪيو ويندو.

آپريٽر جي شروعات تي هڪ نوآبادي، مثال طور: "u: d: p: f:"، مڪمل طور تي مختلف معني آهي. اهو توهان کي هلڻ جي اجازت ڏيڻ جي اجازت ڏئي ٿو جيڪو آپٽرنگنگ ۾ نمائندگي نٿو ڪري سگهجي. انهي صورت ۾ "اختيارن" متغير جو قدر "سي" مقرر ڪيو ويو آهي. ۽ "OPTARG" جو قدر اڻڄاتل پرچم کي مقرر ڪيو ويو آهي. توهان کي ڪنهن غلطي پيغام پهچائڻ جي اجازت ڏئي ٿي جيڪا غلطي جي صارف کي خبر آهي.

اهي دليل آهن جيڪي هڪ پرچم طرفان حاصل ڪري رهيا آهن. جيڪڏهن آپريٽنگ ۾ بيان ٿيل جغرافيه لکيت نه سڏيو ويندو آهي، جڏهن ته رسم الخط سڏيو ويندو آهي، ڪجهه به نه ٿيندو، جيستائين توهان هن حالت کي خاص طور تي سنبھال نه ڪيو. ڪنهن به دلائل حاصل ڪرڻ جي هٿان حاصل نه ٿي سگهي اڃا تائين باقاعده $ 1، $ 2، وغيره متغير سان قبضو ڪري سگھجن ٿيون.