Kif Tikteb u Uża Funzjonijiet u Libreriji Custom Shell
Fil-Linux, l-iskripts tal-qoxra jgħinuna f'ħafna modi differenti inkluż it-twettiq jew saħansitra l-awtomatizzazzjoni ta 'ċerti kompiti ta' amministrazzjoni tas-sistema, il-ħolqien ta 'għodod sempliċi tal-linja tal-kmand u ħafna aktar.
F'din il-gwida, se nuru utenti ġodda tal-Linux fejn jaħżnu b'mod affidabbli skripts tal-qoxra tad-dwana, jispjegaw kif tikteb funzjonijiet u libreriji tal-qoxra tad-dwana, tuża funzjonijiet minn libreriji fi skripts oħra.
Fejn taħżen Shell Scripts
Sabiex tmexxi l-iskripts tiegħek mingħajr ma ttajpja triq sħiħa/assoluta, dawn għandhom jinħażnu f'wieħed mid-direttorji fil-varjabbli tal-ambjent PATH.
Biex tiċċekkja l-PATH tiegħek, toħroġ il-kmand hawn taħt:
$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Normalment, jekk il-bin tad-direttorju jeżisti fid-direttorju tad-dar tal-utenti, huwa awtomatikament inkluż fil-PATH tiegħu/tagħha. Tista' taħżen l-iskripts tal-qoxra tiegħek hawn.
Għalhekk, oħloq id-direttorju tal-bin (li jista 'wkoll jaħżen skripts Perl, Awk jew Python jew kwalunkwe programm ieħor):
$ mkdir ~/bin
Sussegwentement, oħloq direttorju msejjaħ lib (qosra għal libreriji) fejn iżżomm il-libreriji tiegħek stess. Tista 'wkoll iżżomm libreriji għal lingwi oħra bħal C, Python u l-bqija, fiha. Taħtha, oħloq direttorju ieħor imsejjaħ sh; dan se jaħżen b'mod partikolari l-libreriji tal-qoxra:
$ mkdir -p ~/lib/sh
Oħloq il-Funzjonijiet u l-Libreriji tal-shell tiegħek stess
Funzjoni tal-qoxra hija grupp ta 'kmandi li jwettqu kompitu speċjali fi skript. Jaħdmu b'mod simili għal proċeduri, subroutines u funzjonijiet f'lingwi ta' programmar oħra.
Is-sintassi għall-kitba ta' funzjoni hija:
function_name() { list of commands }
Pereżempju, tista' tikteb funzjoni fi skript biex turi d-data kif ġej:
showDATE() {date;}
Kull darba li trid turi d-data, sempliċement invoka l-funzjoni hawn fuq billi tuża isimha:
$ showDATE
Librerija tal-qoxra hija sempliċement skript tal-qoxra, madankollu, tista 'tikteb librerija biex taħżen biss il-funzjonijiet tiegħek li aktar tard tista' ċċempel minn skripts tal-qoxra oħra.
Hawn taħt hemm eżempju ta 'librerija msejħa libMYFUNCS.sh fid-direttorju ~/lib/sh tiegħi b'aktar eżempji ta' funzjonijiet:
#!/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 }
Issejvja l-fajl u agħmel l-iskrittura eżekutibbli.
Kif Tinvoka Funzjonijiet Minn Librerija
Biex tuża funzjoni f'lib, trid l-ewwelnett tinkludi l-lib fl-iskript tal-qoxra fejn se tintuża l-funzjoni, fil-formola hawn taħt:
$ ./path/to/lib OR $ source /path/to/lib
Allura inti tuża l-funzjoni printUSERDETS mil-lib ~/lib/sh/libMYFUNCS.sh fi skript ieħor kif muri hawn taħt.
M'għandekx għalfejn tikteb kodiċi ieħor f'dan l-iskript biex tipprintja d-dettalji ta 'utent partikolari, sempliċement sejjaħ funzjoni eżistenti.
Iftaħ fajl ġdid bl-isem test.sh:
#!/bin/bash #include lib . ~/lib/sh/libMYFUNCS.sh #use function from lib printUSERDETS #exit script exit 0
Issejvjah, imbagħad agħmel l-iskritt eżekutibbli u mexxih:
$ chmod 755 test.sh $ ./test.sh
F'dan l-artikolu, aħna wrejnek fejn taħżen b'mod affidabbli skripts tal-qoxra, kif tikteb il-funzjonijiet u l-libreriji tal-qoxra tiegħek stess, tinvoka funzjonijiet minn libreriji fi skripts tal-qoxra normali.
Sussegwentement, se nispjegaw mod sempliċi kif jiġi kkonfigurat Vim bħala IDE għall-iskript ta' Bash. Sa dakinhar, dejjem ibqa' konness ma' TecMint u aqsam ukoll il-ħsibijiet tiegħek dwar din il-gwida permezz tal-formola ta' feedback hawn taħt.