Användbart bach -skript för Linux

Innehållsförteckning
I bash är det också bra att separera saker, till exempel de funktioner som är gemensamma för alla program, de kan förvaras i en enda uppsättning bibliotek för att senare användas av andra program.
I det här exemplet kommer vi att bygga en biblioteksfil där vi lägger våra funktioner och en annan som använder den här filen. Saken att komma ihåg är att använda de absoluta vägarna.
Vi ska skapa vår biblioteksfil för detta, vår biblioteksfil som kommer att ligga på en strategisk plats för dess användning, i / usr / local / bin kommer vår fil att kallas libreriaBash.sh
Vi öppnar eller skapar det med en textredigerare som Gedit eller om du är expert med en enkel kommandoredigerare som nano eller vi. Inuti kan vi följande kod
 #! / bin / bash # Libraries file # Här kan du deklarera variabler om du vill. #Visa systemdatum och tidsfunktion nu {lokal timeNow lokal retimeNow = $ (datum + "% d /% m /% Y% H:% M:% S.% s") ret = $? echo $ timeNow} #Stäng av datorn vid x tidsavstängning av funktion {echo "Avstängningstid (min):" läs tid sudo avstängning -h $ tid} #Avinstallera ett program, det skickas av parameter och kräver root -användarfunktion för att avinstallera {sudo apt-get remove $ application} #if scrot is installed we can take screenshots function screenshots {scrot -e 'mv $ f ~ / Images / scrot / `date +% d-% m-% y_% H:% M:% S`_capture.png.webp '}

Vi deklarerar variablerna lokala för funktionen, om vi inte gör detta påverkas variablerna som matchar namnet av funktionen och vice versa.
När vi har gjort vår biblioteksfil och utan att glömma att den måste ha körningsattribut skapar vi vårt program som kommer att använda det biblioteket.
Låt oss nu se innehållet i vår test2.sh -fil
 #!/bin/bash #fil test2.sh #inkludera biblioteken ./usr/local/bin/libreriaBash.sh mytime = $ (nu) eko "exempel på biblioteksfunktionsutmatning: $ mytime" eko "exempel två på biblioteksfunktion output: $ (nu) " 

Vi observerar också att funktioner kan användas utan att överföras till en variabel.
Tänk på att det är väldigt liten skillnad mellan att ringa en bash för att inkludera den i vårt program och att köra en bash inom en annan bash.
 #! /bin /bash #test2.sh -fil #inkludera biblioteken /usr/local/bin/libreriaBash.sh 

Det vi säger är att köra filen
nu kan vi köra filen ./test2.sh
Så vi kan skapa andra skriptfiler och lägga till funktioner till de tidigare skapade biblioteken, till exempel kan vi åberopa funktionen för att fånga skärmar som vi redan har i biblioteken från ett nytt skript images.sh
 #!/bin/bash #.sh -fil #inkludera biblioteken ./usr/local/bin/libreriaBash.sh fångar 

Alternativen är många eftersom ett annat exempel på ett bash -skript innehåller flera nedladdningar men skickar en textfil som en parameter
 #! / bin / bash ## ring wget och ladda ner det vi anger med den hastighet vi säger ## och i mappen vill vi ha tydligt eko "Du kan ange en textfil" echo "med adresserna så här: '-i-fil .txt '"sleep 2 echo -n" Ange nedladdningsadress: "läs nedladdning sleep 1 echo" Destinationen måste vara en befintlig mapp på din dator "echo -n" Ange målmapp: "läs destination sleep 1 echo" Speed Är i kb eller mb Ex: 50k 1m "eko" eller ange 0 (noll) för obegränsat "echo -n" Ange nedladdningshastighet: "läshastighet sömn 1 wget -c --limit -rate = $ speed -P $ destination $ file download = `basename $ download` time = $ (date +% H:% M:% S) echo" Nedladdningen av $ filen har slutförts i $ destination vid $ hour "] sleep 3 

Fördelen är att vi kan ha flera bibliotek för att arbeta med filer, kataloger, servrar, installera eller avinstallera program, övervaka resurser eller utföra repetitiva uppgif.webpter utan att behöva ange all kod igen.Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng
wave wave wave wave wave