Bash Pagina 82

De la Wiki Linux Advanced
Versiunea din 27 octombrie 2024 16:19, autor: Admin (discuție | contribuții) (→‎shopt și set)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)
Sari la navigare Sari la căutare

Rularea script-urilor

Rularea script-urilor este un aspect esențial al administrării sistemului și automatizării sarcinilor în mediile Unix/Linux. Această secțiune va explora diferitele metode de a rula script-uri, opțiunile disponibile și considerațiile legate de gestionarea execuției acestora.

Rularea codului dintr-un fișier

Pentru a rula un script dintr-un fișier, trebuie să aveți permisiuni de execuție setate pe fișierul respectiv. Iată cum se face:

  • Setați permisiunile de execuție:
chmod +x script.sh
  • Rulați scriptul:
./script.sh

Fundalul și nohup

Pentru a rula un script în fundal, adăugați & la sfârșitul comenzii:

./script.sh &
  • Dacă doriți să vă asigurați că scriptul continuă să ruleze chiar și după ce vă deconectați, utilizați
nohup ./script.sh &

Acest lucru va redirecționa ieșirea standard și erorile către un fișier numit nohup.out, permițându-vă să verificați rezultatele mai târziu.

exec și redirecționare

Comanda exec permite înlocuirea shell-ului curent cu un nou proces, eliminând astfel costurile asociate cu crearea unui nou proces. Utilizarea exec se poate face în felul următor:

exec ./script.sh

Redirecționarea este, de asemenea, un aspect important al rulării script-urilor, permițându-vă să redirecționați ieșirea standard sau erorile:

./script.sh > output.txt 2>&1

Aici, ieșirea standard și erorile sunt redirecționate către fișierul output.txt.

Rularea scriptului altă dată

Dacă doriți să programați rularea unui script pentru o dată și oră specifice, puteți folosi cron. Modificați crontab-ul cu:

crontab -e

Apoi, adăugați o linie de configurare pentru a rula scriptul la intervalul dorit:

0 5 * * * /path/to/script.sh

Acest exemplu va rula scriptul zilnic la ora 5:00 AM.

shopt și set

Puteți seta variabile de mediu pentru scripturi, asigurându-vă că scriptul are acces la informațiile necesare:

export VAR_NAME=value

Apoi, în scriptul dvs., puteți accesa această variabilă:

echo "Value of VAR_NAME is $VAR_NAME"

shopt este o comandă utilizată în Bash pentru a activa sau dezactiva opțiuni specifice ale shell-ului. Aceste opțiuni afectează comportamentul shell-ului și al script-urilor scrise în Bash.

Sintaxă

shopt [options] [option_name]
  • options: Opțiuni de control pentru comanda shopt.
  • option_name: Numele opțiunii pe care doriți să o activați sau dezactivați.

Exemple de utilizare

  • Lista opțiunilor active

Pentru a lista toate opțiunile curente și starea lor, utilizați:

shopt
  • Activarea unei opțiuni

Pentru a activa o opțiune, utilizați comanda shopt urmată de -s (set):

shopt -s histappend

Aceasta va permite ca istoria comenzii să fie adăugată la fișierul de istorie existent în loc să-l înlocuiască.

  • Dezactivarea unei opțiuni

Pentru a dezactiva o opțiune, utilizați -u (unset):

shopt -u cdable_vars

Aceasta va dezactiva funcția care permite folosirea variabilelor de mediu ca și căi de directoare.

Opțiuni comune

Iată câteva opțiuni utile care pot fi gestionate cu shopt:

  • cdable_vars: Permite utilizarea variabilelor de mediu în comenzile cd.
  • extglob: Activează expresii extinse de globbing, permițând utilizarea unor șabloane mai complexe în globbing.
  • histappend: Permite adăugarea comenzilor noi la fișierul de istorie, în loc de a-l înlocui.
  • progcomp: Activează completarea automată a programelor.

Verificarea stării unei opțiuni

Pentru a verifica starea unei opțiuni specifice, rulați:

shopt option_name

De exemplu, pentru a verifica dacă cdable_vars este activată:

shopt cdable_vars

Concluzie

Comanda shopt este un instrument puternic pentru personalizarea comportamentului shell-ului Bash. Prin activarea sau dezactivarea opțiunilor, utilizatorii pot optimiza modul în care interacționează cu shell-ul și pot îmbunătăți eficiența muncii lor.

Comanda set

Comanda `set` în Bash este utilizată pentru a seta sau a vizualiza opțiuni ale shell-ului și variabile de mediu. Aceasta poate afecta comportamentul shell-ului, inclusiv modul în care sunt gestionate variabilele și funcțiile.

Sintaxă

set [options] [arguments]
  • options: Opțiuni care pot fi activate sau dezactivate.
  • arguments: Variabilele sau funcțiile pe care doriți să le definiți sau să le modificați.

Vizualizarea opțiunilor curente

Pentru a vizualiza toate opțiunile curente setate în shell, utilizați:

set

Pentru a activa o opțiune, utilizați comanda set urmată de -o:

set -o noclobber

Aceasta va preveni suprascrierea fișierelor existente când redirecționați ieșirea.

Pentru a dezactiva o opțiune, folosiți +o:

set +o noclobber

Acest lucru va permite suprascrierea fișierelor existente.

Setarea variabilelor

Puteți utiliza set pentru a defini variabile de mediu:

set MYVAR="Hello, World!"
  • Setarea variabilelor de tip array

Pentru a defini o variabilă ca un array, utilizați:

set -a
myarray=(1 2 3 4 5)
set +a

Acest lucru va face ca variabila să fie disponibilă în toate sub-shell-urile.

  • Activarea modului strict

Pentru a activa un mod strict, care ajută la prevenirea erorilor în scripturi, utilizați:

set -e

Aceasta va face ca scriptul să se oprească imediat ce apare o eroare.

Concluzie

Comanda set este un instrument esențial în shell-ul Bash, care permite utilizatorilor să configureze opțiuni și variabile de mediu. Prin activarea sau dezactivarea diferitelor opțiuni, utilizatorii pot personaliza modul în care shell-ul funcționează și pot gestiona variabilele într-un mod mai eficient.

Mai mult:

Opțiunile disponibile pentru comanda `set`

Comanda `set` în Bash oferă o varietate de opțiuni care pot modifica comportamentul shell-ului. Iată o listă cu cele mai comune opțiuni disponibile:

Opțiuni

  • `-a`

- Activează "exportarea automată" a variabilelor, astfel încât orice variabilă definită va fi automat exportată în sub-shell-uri.

  • `-b`

- Afișează un mesaj de notificare imediat când un job în fundal se termină. Aceasta este utilă pentru monitorizarea job-urilor de fundal.

  • `-e`

- Activarea modului strict. Scriptul se va opri imediat la prima eroare întâlnită, ceea ce ajută la prevenirea executării unor comenzi necorespunzătoare.

  • `-f`

- Dezactivează "filename expansion" (expansiunea numelui fișierului), inclusiv wildcard-uri, care de obicei extind `*`, `?`, și `[]` la numele fișierelor corespunzătoare.

  • `-h`

- Activarea memoriei cache pentru comenzi, astfel încât shell-ul să rețină locația comenzilor executabile, îmbunătățind timpul de răspuns pentru comenzile deja folosite.

  • `-m`

- Activează monitorizarea job-urilor, permițând utilizatorului să controleze job-urile în fundal mai eficient.

  • `-n`

- Nu execută comenzi, ci le citește și le verifică sintaxa. Este util pentru testarea scripturilor fără a le executa efectiv.

  • `-p`

- Alege un "restricted shell", care are un set limitat de funcționalități, utilizat de obicei pentru a restricționa utilizatorii.

  • `-q`

- Activarea modului "quiet", care dezactivează afișarea mesajelor informative despre comenzi.

  • `-s`

- Permite utilizarea semnului de "scripting" în scripturi, ceea ce este util pentru a specifica opțiuni pentru evaluarea interactivă.

  • `-t`

- Oprește shell-ul după executarea unei comenzi. Aceasta este utilă pentru a executa un singur script și a închide automat shell-ul.

  • `-u`

- Activează o eroare pentru utilizarea variabilelor nesetate. Aceasta previne accesarea variabilelor care nu au fost definite anterior.

  • `-v`

- Afișează fiecare comandă înainte de a fi executată, util pentru depanare.

  • `-x`

- Afișează fiecare comandă și argumentul său înainte de a fi executat. Este similar cu `-v`, dar include și argumentele.

  • `+` prefix

- Precedând o opțiune cu `+`, se dezactivează acea opțiune. De exemplu, `set +e` va dezactiva modul strict.

Concluzie Comanda `set` și opțiunile sale sunt esențiale pentru configurarea comportamentului shell-ului Bash. Utilizatorii pot activa sau dezactiva aceste opțiuni pentru a adapta shell-ul la nevoile lor specifice, îmbunătățind eficiența și siguranța scripturilor.


Pagina anterioară | Următoarea pagină