Otu esi ede ma jiri ọrụ Shell omenala na ọba akwụkwọ
Na Linux, scripts shei na-enyere anyị aka n'ọtụtụ ụzọ dị iche iche gụnyere ịrụ ọrụ ma ọ bụ ọbụna imezi ụfọdụ ọrụ nchịkwa sistemu, imepụta ngwa ahịrị iwu dị mfe na ọtụtụ ndị ọzọ.
N'ime ntuziaka a, anyị ga-egosi ndị ọrụ Linux ọhụrụ ebe ha ga-eji ntụkwasị obi chekwaa scripts shei omenala, kọwaa otu esi ede ọrụ shei omenala na ọba akwụkwọ, jiri ọrụ sitere na ọba akwụkwọ na edemede ndị ọzọ.
Ebe a ga-echekwa scripts Shell
Ka ị na-agba ọsọ scripts gị na-enweghị pịnye ụzọ zuru oke/zuru oke, a ga-echekwa ha n'otu akwụkwọ ndekọ aha na mgbanwe gburugburu PATH.
Iji lelee PATH gị, nye iwu dị n'okpuru:
$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Dị ka ọ na-adịkarị, ọ bụrụ na akwụkwọ ndekọ aha dị na ndekọ ụlọ ndị ọrụ, a na-etinye ya ozugbo na PATH ya. Ị nwere ike ịchekwa scripts shei gị ebe a.
Ya mere, mepụta bin ndekọ (nke nwekwara ike ịchekwa script Perl, Awk ma ọ bụ Python ma ọ bụ mmemme ọ bụla):
$ mkdir ~/bin
Na-esote, mepụta ndekọ aha a na-akpọ lib (obere maka ọba akwụkwọ) ebe ị ga-edobe ọba akwụkwọ nke gị. Ị nwekwara ike idowe ọba akwụkwọ maka asụsụ ndị ọzọ dị ka C, Python na ndị ọzọ, na ya. N'okpuru ya, mepụta akwụkwọ ndekọ aha ọzọ a na-akpọ sh; Nke a ga-echekwa gị ụlọ ọba akwụkwọ shell:
$ mkdir -p ~/lib/sh
Mepụta ọrụ Shell na ọba akwụkwọ nke gị
Ọrụ shei bụ otu iwu na-arụ ọrụ pụrụ iche na edemede. Ha na-arụ ọrụ n'otu aka ahụ na usoro, subroutines na ọrụ n'asụsụ mmemme ndị ọzọ.
Okwu syntax maka ide ọrụ bụ:
function_name() { list of commands }
Dịka ọmụmaatụ, ịnwere ike ide ọrụ na edemede iji gosi ụbọchị dịka ndị a:
showDATE() {date;}
Oge ọ bụla ịchọrọ igosipụta ụbọchị, kpọkuo ọrụ dị n'elu site na iji aha ya:
$ showDATE
Ọbá akwụkwọ shei bụ naanị edemede shei, agbanyeghị, ị nwere ike dee ọbá akwụkwọ iji chekwaa naanị ọrụ gị nke ị ga-emecha kpọọ site na edemede shei ndị ọzọ.
N'okpuru bụ ọmụmaatụ nke ọbá akwụkwọ a na-akpọ libMYFUNCS.sh na ndekọ ~/lib/sh m nwere ihe atụ nke ọrụ ndị ọzọ:
#!/bin/bash #Function to clearly list directories in PATH showPATH() { oldifs="$IFS" #store old internal field separator IFS=: #specify a new internal field separator for DIR in $PATH ; do echo $DIR ; done IFS="$oldifs" #restore old internal field separator } #Function to show logged user showUSERS() { echo -e “Below are the user logged on the system:\n” w } #Print a user’s details printUSERDETS() { oldifs="$IFS" #store old internal field separator IFS=: #specify a new internal field separator read -p "Enter user name to be searched:" uname #read username echo "" #read and store from a here string values into variables using : as a field delimiter read -r username pass uid gid comments homedir shell <<< "$(cat /etc/passwd | grep "^$uname")" #print out captured values echo -e "Username is : $username\n" echo -e "User's ID : $uid\n" echo -e "User's GID : $gid\n" echo -e "User's Comments : $comments\n" echo -e "User's Home Dir : $homedir\n" echo -e "User's Shell : $shell\n" IFS="$oldifs" #store old internal field separator }
Chekwaa faịlụ ahụ ma mee ka edemede ahụ rụọ ọrụ.
Otu esi akpọku ọrụ site na ọba akwụkwọ
Iji jiri ọrụ dị na lib, ị ga-ebu ụzọ tinye lib na edemede shei ebe a ga-eji ọrụ ahụ, n'ụdị dị n'okpuru:
$ ./path/to/lib OR $ source /path/to/lib
Yabụ ị ga-eji ọrụ printUSERDETS sitere na lib ~/lib/sh/libMYFUNCS.sh n'edemede ọzọ dị ka egosiri n'okpuru.
Ịkwesighi ide koodu ọzọ na edemede a ka ibipụta nkọwa nke onye ọrụ, naanị kpọọ ọrụ dị adị.
Mepee faịlụ ọhụrụ nwere aha test.sh:
#!/bin/bash #include lib . ~/lib/sh/libMYFUNCS.sh #use function from lib printUSERDETS #exit script exit 0
Chekwaa ya, wee mee ka edemede ahụ rụọ ọrụ wee mee ya:
$ chmod 755 test.sh $ ./test.sh
N'isiokwu a, anyị gosiri gị ebe ị ga-atụkwasị obi na-echekwa scripts shei, otu esi ede ọrụ shei gị na ọba akwụkwọ, kpọọ ọrụ site na ọba akwụkwọ na scripts shei nkịtị.
Na-esote, anyị ga-akọwa ụzọ kwụ ọtọ maka ịhazi Vim ka ọ bụrụ IDE maka edemede Bash. Ruo mgbe ahụ, nọrọ na TecMint mgbe niile ma kesaa echiche gị gbasara ntuziaka a site na ụdị nzaghachi dị n'okpuru.