Otu esi achọpụta mmezu nke iwu na Shell Script site na nchọta Shell
N'ime edemede a nke usoro nbibi script shei, anyị ga-akọwa ọnọdụ nbibi nke atọ shei, ya bụ tracing shei wee lelee ụfọdụ ọmụmaatụ iji gosi ka o si arụ ọrụ, yana otu enwere ike iji ya.
Akụkụ gara aga nke usoro a na-eme ka ìhè dị n'ụzọ doro anya na ụdị nbibi nke abụọ ọzọ shei: mode verbose na syntax check mode na ihe atụ dị mfe nghọta nke otu esi eme ka nbibi script shea na ụdịdị ndị a.
- Etu esi eme ka ọnọdụ nbibi akwụkwọ Shell dị na Linux – Nkebi 1
- Otu esi eme ọnọdụ nbibi okwu n'ime ederede Shell - Nkebi 2
Nchọgharị shell pụtara naanị ịchọta mmezu iwu ndị dị n'edemede shei. Ka ịgbanwuo tracing shei, jiri -x
nhọrọ nbipu.
Nke a na-eduzi shei ahụ ka ọ gosipụta iwu niile yana arụmụka ha na njedebe ka a na-egbu ha.
Anyị ga-eji sys_info.sh
edemede shei dị n'okpuru, nke na-ebipụta ụbọchị na oge sistemụ gị nkenke, ọnụọgụ ndị ọrụ abanyela na oge sistemụ. Agbanyeghị, ọ nwere njehie syntax nke anyị kwesịrị ịchọta ma mezie ya.
#!/bin/bash #script to print brief system info ROOT_ID="0" DATE=`date` NO_USERS=`who | wc -l` UPTIME=`uptime` check_root(){ if [ "$UID" -ne "$ROOT_ID" ]; then echo "You are not allowed to execute this program!" exit 1; } print_sys_info(){ echo "System Time : $DATE" echo "Number of users: $NO_USERS" echo "System Uptime : $UPTIME } check_root print_sys_info exit 0
Chekwaa faịlụ ahụ ma mee ka edemede ahụ rụọ ọrụ. Enwere ike iji mgbọrọgwụ mee edemede ahụ, ya mere jiri sudo iwu mee ya dị ka n'okpuru:
$ chmod +x sys_info.sh $ sudo bash -x sys_info.sh
Site na mmepụta dị n'elu, anyị nwere ike ịhụ nke ahụ, a na-ebu ụzọ mee iwu tupu a dochie ya dị ka uru nke mgbanwe.
Ọmụmaatụ, e bu ụzọ gbuo ụbọchị ahụ ma dochie ihe mmepụta ya dị ka uru nke DATE agbanwe.
Anyị nwere ike ịme nyocha syntax iji gosipụta naanị njehie syntax dị ka ndị a:
$ sudo bash -n sys_info.sh
Ọ bụrụ na anyị elee nke ọma n'edemede shei, anyị ga-aghọta na ọ bụrụ nkwupụta
na-efunarị okwu fi
. Ya mere, ka anyị tinye ya na ọhụrụ script kwesịrị ka ugbu a dị ka n'okpuru:
#!/bin/bash #script to print brief system info ROOT_ID="0" DATE=`date` NO_USERS=`who | wc -l` UPTIME=`uptime` check_root(){ if [ "$UID" -ne "$ROOT_ID" ]; then echo "You are not allowed to execute this program!" exit 1; fi } print_sys_info(){ echo "System Time : $DATE" echo "Number of users: $NO_USERS" echo "System Uptime : $UPTIME } check_root print_sys_info exit 0
Chekwaa faịlụ ahụ ọzọ wee kpọọ ya ka ọ bụrụ mgbọrọgwụ wee mee ụfọdụ nyocha syntax:
$ sudo bash -n sys_info.sh
Nsonaazụ nke ọrụ nyocha syntax anyị dị n'elu ka na-egosi na enwere otu ahụhụ ọzọ na edemede anyị na ahịrị 21. Ya mere, anyị ka nwere mgbazi syntax anyị ga-eme.
Ọ bụrụ na anyị leba anya n'edemede ahụ n'otu oge ọzọ, njehie dị na ahịrị 21 bụ n'ihi nkwụghachi ụgwọ okpukpu abụọ na-efu (”)
n'iwu echo ikpeazụ n'ime ọrụ print_sys_info
.
Anyị ga-agbakwunye ọnụ okwu mmechi okpukpu abụọ na iwu echo wee chekwaa faịlụ ahụ. Edemede agbanwere dị n'okpuru:
#!/bin/bash #script to print brief system info ROOT_ID="0" DATE=`date` NO_USERS=`who | wc -l` UPTIME=`uptime` check_root(){ if [ "$UID" -ne "$ROOT_ID" ]; then echo "You are not allowed to execute this program!" exit 1; fi } print_sys_info(){ echo "System Time : $DATE" echo "Number of users: $NO_USERS" echo "System Uptime : $UPTIME" } check_root print_sys_info exit 0
Ugbu a, lelee edemede ahụ n'otu oge ọzọ.
$ sudo bash -n sys_info.sh
Iwu dị n'elu agaghị emepụta mmepụta ọ bụla n'ihi na edemede anyị adịla mma ugbu a n'ụzọ ziri ezi. Anyị nwekwara ike ịchọpụta mmezu nke edemede ahụ nke ugboro abụọ ma ọ kwesịrị ịrụ ọrụ nke ọma:
$ sudo bash -x sys_info.sh
Ugbu a na-agba ọsọ script.
$ sudo ./sys_info.sh
Mkpa nke ịchụso mkpochapụ Script Shell
Ịchọta edemede Shell na-enyere anyị aka ịchọpụta njehie syntax yana nke ka mkpa, mperi ezi uche dị na ya. Were dịka ọmụmaatụ ọrụ check_root
na sys_info.sh
script shei, nke ezubere iji chọpụta ma onye ọrụ nwere mgbọrọgwụ ma ọ bụ na ọ bụghị, ebe ọ bụ naanị na a na-ahapụ edemede ahụ ka emee ya. site na superuser.
check_root(){ if [ "$UID" -ne "$ROOT_ID" ]; then echo "You are not allowed to execute this program!" exit 1; fi }
A na-achịkwa anwansi ebe a site na if nkwupụta
okwu [ \$UID\ -ne \$ROOT_ID\ ]
, ozugbo anyị ejighị onye ọrụ ọnụọgụ dabara adaba. (-ne
na nke a, nke pụtara na ọ bụghị nhata ), anyị na-ejedebe na njehie ezi uche nwere ike ime.
N'iche na anyị ji -eq
( pụtara nhata), nke a ga-ahapụ onye ọrụ sistemụ yana onye ọrụ mgbọrọgwụ ịme edemede ahụ, yabụ njehie ezi uche dị na ya.
check_root(){ if [ "$UID" -eq "$ROOT_ID" ]; then echo "You are not allowed to execute this program!" exit 1; fi }
Mara: Dịka anyị lere anya na mmalite nke usoro isiokwu a, iwu arụnyere n'ime shei nwere ike rụọ ọrụ ndozi n'otu akụkụ nke edemede shei.
Ya mere, ahịrị dị n'okpuru ga-enyere anyị aka ịchọta njehie ezi uche dị na ọrụ ahụ site na ịchọta mmezu ya:
Edemede ahụ nwere mperi ezi uche dị na ya:
#!/bin/bash #script to print brief system info ROOT_ID="0" DATE=`date` NO_USERS=`who | wc -l` UPTIME=`uptime` check_root(){ if [ "$UID" -eq "$ROOT_ID" ]; then echo "You are not allowed to execute this program!" exit 1; fi } print_sys_info(){ echo "System Time : $DATE" echo "Number of users: $NO_USERS" echo "System Uptime : $UPTIME" } #turning on and off debugging of check_root function set -x ; check_root; set +x ; print_sys_info exit 0
Chekwaa faịlụ ahụ ma kpọọ edemede ahụ, anyị nwere ike ịhụ na onye ọrụ usoro mgbe niile nwere ike ịme edemede ahụ na-enweghị sudo dị ka ọ dị na mmepụta n'okpuru. Nke a bụ n'ihi na uru USER_ID bụ 100 nke na-adaghị na mgbọrọgwụ ROOT_ID nke bụ 0.
$ ./sys_info.sh
Ọfọn, nke ahụ bụ maka ugbu a, anyị abịala na njedebe nke usoro nbibi nke shei, ụdị nzaghachi dị n'okpuru ebe a nwere ike iji zaa ajụjụ ọ bụla ma ọ bụ nzaghachi nye anyị, gbasara ntuziaka a ma ọ bụ usoro 3 dum.