Sunteți pe pagina 1din 13

1/31/10

4. Comenzi UNIX

Cuprins
Generaliti Comenzi pentru fiiere i cataloage Comenzi pentru operaii asupra proceselor Comenzi de informare i administrare Comenzi pentru prelucrarea fiierelor text Comezi pentru operaii asupra perifericelor Comenzi diverse

1/31/10

4.1. Generaliti
Comenzile reprezint interfaa utilizatorului cu SO i sunt programe care se lanseaz n execuie cu un program special, interpretorul de comenzi Exist diferite interpretoare de comenzi: sh, csh(C-shell), ksh (Korn shell), bash (born again shell), tcsh, zsh, etc. Interpretoarele se deosebesc prin facilitile de programare i de interactivitate oferite Sintaxa general a unei comenzi UNIX: comand optiuni parametri unde: comand numele fiierului executabil care conine programul optiuni particularizeaz modul de execuie a comenzii parametri indic obiectele asupra crora se execut comanda Majoritatea comenzilor ofer ajutor dac sunt apelate eronat. Ex.: rm produce: syntax: rm [rf] file(s)

4.2.1. Comenzi pentru operaii asupra cataloagelor (1)


Afiarea numelui catalogului curent:
$ pwd /home/staff/ionel/test

Afiarea coninutului unui catalog: ls [opt][nume fisiere/cataloage] exemple:


$ ls bin charint.c $ ls -l total 20 drwxr-xr-x -rw-r--r--rw-r--r--rw-r--r-dc_command_line.c dce.c

2 1 1 1

ionel ionel ionel ionel

staff staff staff staff

4096 92 3956 4738

Oct Jul Jul Jul

17 09:40 bin 24 2002 charint.c 26 2002 dc_command_line.c 26 2002 dce.c

$ ls -ali test total 28 1237895 drwxr-xr-x 32577 drwx--x--x 1661491 drwxr-xr-x 1237896 -rw-r--r-1237900 -rw-r--r-1237898 -rw-r--r--

3 30 2 1 1 1

ionel ionel ionel ionel ionel ionel

staff staff staff staff staff staff

4096 4096 4096 92 3956 4738

Oct Sep Oct Jul Jul Jul

17 09:40 . 28 13:55 .. 17 09:40 bin 24 2002 charint.c 26 2002 dc_command_line.c 26 2002 dce.c

Schimbarea catalogului curent


cd [ nume catalog]

1/31/10

Comenzi pentru operaii asupra cataloagelor (2)


tergerea unei / unor intrri de catalog rm [optiuni] nume_de_intrri Opiuni: -i utilizatorul este ntrebat nainte de tergere -r sau R tergere recursiv Pentru specificarea mai multor intrri se pot folosi expresii regulate. Metacaractere: * ? [] \m Caz special: tergerea fiierelor ascunse Obs.: fiierul fizic se terge numai cnd numrul de legturi ajunge 0 tergerea unui catalog: rmdir [optiuni] nume_catalog Crearea unui catalog: mkdir [-p] nume_catalog

4.2.2. Comenzi pentru operaii cu fiiere(1)


Listarea coninutului unui fiier: cat [optiuni] [nume-fisier] Opiuni: -n precede fiecare linie cu numrul de ordine -s substituie linii goale consecutive cu una singur -v afieaz n form vizibil i caracterele netipribile Alt comand de afiare: more Copierea unui fiier: cp [optiuni] nume1 nume2 nume1 i nume2 pot fi denumiri de fiiere sau de directoare; rezultatul comenzii depinde de natura numelor Dac ambele nume sunt directoare, trebuie s fie prezent opiunea R sau r (copiere recursiv), n nume2 se copiaz subarborele cu nume1 ca rdcin Alt opiune: -i cere confirmare de la utilizator dac s-ar suprascrie un fiier Comanda creeaz fiier fizic nou

1/31/10

Comenzi pentru operaii cu fiiere(2)


Schimbarea numelui (poziiei) unui fiier: mv [optiuni] surs destinatie Dac destinatie este director se creeaz acolo o intrare cu numele surs Comanda nu poate transfera ntre partiii Pentru evitarea suprascrierii destinaiei se folosete opiunea -i Crearea unei noi legturi pentru un fiier: ln [fs] nume-cale [legtur] sau: ln fs nume-cale ... catalog Prima form fr legtur creeaz n directorul curent o intrare cu numele ultimei componente din nume-cale A doua form creeaz n catalog intrri cu numele date de ultimele componente din lista de nume-cale Opiunea s creeaz legturi simbolice, care sunt fiiere text, cu coninut numecale i pot traversa partiii (sisteme de fiiere) Fr s nu se creeaz fiier fizic nou, doar legturi Opiunea f permite superutilizatorului s creeze legturi fixe (fr s) spre directoare

4.3. Comenzi pentru operaii asupra proceselor(1)


Listarea proceselor active n sistem: ps [optiuni] Exemplu fr opiuni: $ ps PID TTY TIME CMD 20154 pts/3 00:00:00 bash 4569 pts/3 00:00:00 ps Opiunile (i modul de afiare) difer ntre versiunile de UNIX. Principalele opiuni la Linux sunt: -a afieaz informaii despre toate procesele din sistem -l determin o afiare mai extins ( cu mai multe informaii) -u afiare extins, dar diferit de l. -e afieaz i ambiana de execuie Exemple: $ ps -l
F S 100 S 000 R UID PID PPID 2000 22769 22748 2000 22810 22769 C PRI 0 69 0 76 NI ADDR 0 0 SZ WCHAN 606 wait4 749 TTY pts/0 pts/0 TIME CMD 00:00:00 bash 00:00:00 ps

$ ps -u USER ionel ionel

PID %CPU %MEM 22769 0.6 0.5 22819 0.0 0.2

VSZ RSS TTY 2424 1312 pts/0 2548 692 pts/0

STAT START S 14:24 R 14:24

TIME COMMAND 0:00 -bash 0:00 ps -u

1/31/10

Comenzi pentru operaii asupra proceselor(2)


Terminarea forat a execuiei unui proces: kill [optiuni] [pid]... Argumentul pid este obligatoriu, cu excepia cazului cnd se folosete opiunea l Comanda trimite un semnal, identificat prin valoarea opiunii, proceselor specificate prin lista de pid Semnalele posibile: $ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS Listarea activitii diverilor utilizatori: w [optiuni] [utilizator] Exemplu: $ w 8:12am up 10 day(s), 21 min(s), 2 users, load average: 0.09, 0.09, 0.11 User tty login@ idle JCPU PCPU what jdays pts/3 Fri 1pm 14:14 8 pine ijurca2 pts/1 8:12am w

Comenzi pentru operaii asupra proceselor(3)


Listarea dinamic a proceselor din sistem comanda top

5:23pm up 17 days, 3:07, 1 user, load average: 0.08, 0.12, 0.07 105 processes: 104 sleeping, 1 running, 0 zombie, 0 stopped CPU0 states: 0.1% user, 0.1% system, 0.0% nice, 99.3% idle CPU1 states: 0.1% user, 1.2% system, 0.0% nice, 98.1% idle Mem: 255684K av, 252040K used, 3644K free, 0K shrd, 21796K buff Swap: 1054728K av, 195728K used, 859000K free 47836K cached PID USER 6110 ionel 10 root 11 root 151 root 686 named 687 named 1 root 2 root 3 root 4 root 5 root PRI NI SIZE RSS SHARE STAT %CPU %MEM 19 0 1076 1076 824 R 0.3 0.4 10 0 0 0 0 SW 0.1 0.0 14 0 0 0 0 SW 0.1 0.0 11 0 0 0 0 SW 0.1 0.0 14 0 38792 35M 1152 S 0.1 14.2 11 0 38792 35M 1152 S 0.1 14.2 8 0 472 436 412 S 0.0 0.1 9 0 0 0 0 SW 0.0 0.0 19 19 0 0 0 SWN 0.0 0.0 19 19 0 0 0 SWN 0.0 0.0 9 0 0 0 0 SW 0.0 0.0 TIME COMMAND 0:00 top 1:31 kupdated 44:20 kjournald 29:55 kjournald 73:37 named 73:16 named 0:31 init 0:18 keventd 0:28 ksoftirqd_CPU0 0:25 ksoftirqd_CPU1 23:50 kswapd

1/31/10

4.4. Comenzi de informare i administrare(1)


Afiarea datei i orei curente:
$ date Sat Oct 20 17:31:37 EEST 2007

Forma date yymmddhhmm este permis numai superutilizatorului

Afiarea utilizatorilor aflai momentan n sesiune:


(131.171.55.175) (dyn-89.136.42.126.tm.upcnet.ro) (c-68-34-51-42.hsd1.md.comcast.net)

$ who jdays pts/3 Oct 19 13:34 ijurca2 pts/2 Oct 20 10:34 abardi pts/1 Oct 20 09:42 sau users jdays ijurca2 abardi newuser

Afiarea utilizatorilor receni ai sistemului:


console console console console pts/4 pts/4 pts/4 reboot system boot system boot Wed Oct 10 07:58 - 08:28 Wed Feb 28 08:27 - 08:30 Wed Feb 28 08:10 - 08:11 (00:29) (00:02) (00:01)

$ last -3 system root root $ last -3 tsands chgpass newuser $ last -2 reboot reboot

208-59-122-24.c3 Sat Oct 20 10:38 still logged in 208-59-122-24.c3 Sat Oct 20 10:37 - 10:37 (00:00) 208-59-122-24.c3 Sat Oct 20 10:36 - 10:36 (00:00) Wed Oct 10 07:51 Wed Feb 28 08:24

Comenzi de informare i administrare(2)


Identitatea calculatoarelor din reea:
$ hostname bigfoot $ hostid e2c10d0c $ domainname (none)

Comenzile mount/umount
Ca i comand de informare: $ mount /dev/hda2 on / type ext3 (rw) none on /proc type proc (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) /dev/hda7 on /home/staff type ext3 (rw,quota,grpquota) /dev/hdc2 on /home/stud type ext3 (rw,quota,grpquota) /dev/hda6 on /opt type ext3 (rw) Comanda cu argumente: mount [-fnrsvw] [-t vfstype] [-o options] device dir poate fi folosit numai de superutilizator. device trebuie s fie numele unei partiii, iar dir este un nume de director Comanda: umount [-dflnrv] dir | device [...] este rezervat tot superutilizatorului.

1/31/10

Comenzi de informare i administrare(3)


/ etc

usr

home

mount /dev/sd0h /home /

etc

usr

home

staff

stud

guests

staff

stud

guests

Comenzi de informare i administrare(4)


Afiarea spaiului liber/ocupat ntr-un catalog
du [s] [a] [nume-fisier] -a genereaz cte o linie pentru fiecare fiier -s afieaz numai totalul general Fr opiuni se genereaz totalul numai pentru directoare Fr argumente se consider directorul curent Spaiul unui fiier cu legturi multiple e luat n considerare o singur dat Exemplu: $ ls -li test total 28 1661491 drwxr-xr-x 2 ionel staff 4096 Oct 1237896 -rw-r--r-1 ionel staff 92 Jul 1237900 -rw-r--r-1 ionel staff 3956 Jul 1237898 -rw-r--r-2 ionel staff 4738 Jul 1237898 -rw-r--r-2 ionel staff 4738 Jul $ du -a test 4 test/charint.c 4 test/bin 8 test/dce.c 4 test/commandline.c 24 test

17 09:40 bin 24 2002 charint.c 26 2002 commandline.c 26 2002 dce.c 26 2002 dcelink.c

Afiarea spaiului liber/ocupat ntr-un sistem de fiiere:

df [-a] [-i] [-t type] [filesystem ] [filename] Exemplu: $ df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda2 3028108 672648 2201640 24% / /dev/hda7 16128636 7938340 8190296 50% /home/staff /dev/hdc2 34269232 8526844 25742388 25% /home/stud /dev/hda6 2016016 118752 1876784 6% /opt

1/31/10

Comenzi de informare i administrare(5)


Controlul drepturilor de acces la un fiier:

chmod [fR] mode filename Modul se poate specifica numeric sau simbolic. Numeric: 3 cifre octale, pentru 3 categorii de utilizatori. A patra cifr octal (se scrie prima) corespunde cu setuid, setgid, sticky. Ex.: 755 este echivalent cu rwxr-xr-x, iar 4644 este echivalent cu rwSrr adic are poziionat setuid. Pentru modul simbolic: [cine] op drept [opt drept ...] cine este o combinaie de u g o a op poate fi: + - = drept poate fi: r w x s(setuid) t(sticky) Opiunile: -R recursiv, -f foreaz, adic suprim mesajele de eroare cnd nu se poate schimba modul Exemplu: -rw-r--r-1 ionel staff 92 Jul 24 2002 charint.c dup: chmod u+s charint.c devine: -rwSr--r-1 ionel staff 92 Jul 24 2002 charint.c

Modificarea proprietarului unui fiier (permis numai superutilizatorului) :


chown [fHR] owner[ group] filename ...

4.5. Comenzi pentru prelucrarea fiierelor text(1)


Afiarea primelor linii dintr-un fiier:
head [-n] [filename ...] -n precizeaz numrul de linii afiate (implicit 10) Dac sunt mai multe fiiere, numele fiecruia e precedat de: === > filename < ===

Afiarea ultimei poriuni dintr-un fiier:


tail +|-number[lbc][rf][filename] Se refer ntotdeauna la un singur fiier Cu semnul + poziia de nceput a afirii se ia relativ la nceputul fiierului Opiunea f (follow) duce comanda n ciclu infinit, arat modificarea ultimei pri a fiierului l b c indic unitatea de msur: linie, bloc, caracter r determin afiarea n ordine invers (ncepe cu ultima linie) nu este acceptat n toate distribuiile

Determinarea numrului de linii, cuvinte i caractere dintr-un fiier:


wc [lwc] [filename ...] exemplu: $ wc *.c 6 16 92 charint.c 218 552 3956 dc-command-line.c 239 617 4738 dce.c 239 617 4738 dcelink.c 702 1802 13524 total

1/31/10

Comenzi pentru prelucrarea fiierelor text(2)


Sortarea coninutului fiierelor text: sort [bdfiMnr] [tc] [sort-field] [cmu] [o output-file] [T directory] [y kmem] [z recsz] [filename ...] Forma sortat (n sens cresctor) este afiat implicit n fiierul standard de iesire, fiierul prelucrat nu se modific. Opiunea o permite specificarea altui fiier de ieire Sortarea se face folosind implicit toate caracterele liniei. De obicei liniile sunt organizate n cmpuri, opiunea t permite specificarea caracterului separator de cmp (c), implicit fiind spaiile albe. Prin sort-field se indic dup ce cmp se face sortarea. Este un numr ntreg precedat de +(cmpul de nceput) sau (cmpul de sfrit) Opiunea n cere ca valoarea cmpului s fie interpretat numeric, nu ca ir de caractere Opiunea r determin sortarea n ordine descresctoare Opiunea u determin reinerea n rezultat a unei singure linii dintre mai multe identice Exemplu: sortarea fiierului de parole dup valoarea numeric a UID: # sort t: +2n -3 o newpasswd /etc/passwd

Editoare pentru fiiere text(1)


Comanda sed sed [n] [e] command file(s) sed [n] f scriptfile file(s) sed este prescurtat de la stream editor; nu este interactiv; primete operaia (command) n linia de comand i fiierul asupra cruia se execut Rezultatul se trimite implicit n fiierul standard de ieire -n suprim ieirea; se afieaz numai liniile specificate cu comanda p -e precizeaz c urmtorul argument este o comand; se folosete cnd se specific mai multe operaii n aceeai linie -f urmtorul argument este numele unui fiier care conine comenzi de editare Comenzile de editare au sintaxa: [address[,address]][!]command [arguments] Fiecare comand se aplic pe rnd fiecrei linii selectate din fiierul dat ca intrare Dac lipsete partea de adres, se selecteaz toate liniile Adresele se specific prin tipare. Exemple: 1, 30 toate liniile de la 1 la 30 /^$/ toate liniile goale 1, /^$/ liniile de la nceputul fiierului pn la prima goal /SAVE/! liniile care nu conin SAVE Comanda cea mai utilizat: substituia, cu sintaxa: s/pattern/replacement/[flags] Pt. pattern se folosesc expresii regulate n care * red orice ir, iar . orice caracter. Fanioane: g (global) se aplic substituia la toate apariile tiparului n linia curent n nlocuiete a n-a apariie a tiparului p tiprete linia dac s-a produs o nlocuire

1/31/10

Editoare pentru fiiere text(2)


Exemple de comenzi s: sed s/Unix/UNIX/g czi.tex sed s/^$/Linie goala/ fisier.txt Alte comenzi ale sed: d tergerea liniilor adresate a\ adugarea de text dup o linie i\ inserarea de text n faa unei linii Comanda grep grep [options]regexp [file(s)] Sintaxa expresiilor regulate este la fel ca i la sed Se afieaz n fiierul standard de ieire liniile care conin un ir ce corespunde expresiei regulate Opiuni: -c se afieaz numai numrul liniilor ce corespund tiparului -i ignor deosebirea ntre litere mari i mici la cutarea dup tipar -v afieaz liniile ce nu corespund expresiei regulate -n afieaz liniile nsoite de numrul de ordine n fiier Exemplu tipic: ps aux | grep netscape Exist variante mai extinse ale comenzii: egrep i fgrep

Cutarea de tipare i editarea de rapoarte awk (1)


awk este un editor programabil care poate interpreta o secven (script) de comenzi de editare. Sintaxa: awk [-f progfile] [-F c] [ ' prog '] [filename...] Un program awk conine o secven principal care se aplic fiecrei linii din fiierul text i, eventual, dou rutine care se execut una nainte de prelucrarea unui fiier text i cealalt dup terminarea prelucrrii Progamul se specific fie ntr-un fiier cu numele dat prin opiunea f, fie direct n linia de comand, ntre apostroafe O instruciune de program are forma: tipar {procedura} Pentru tipar se pot folosi formele: /expresie regulat/ expresie relational expresie de coresp. de tipare BEGIN END procedura const din una sau mai multe comenzi, funcii sau atribuiri de variabile, separate de ; sau newline Exist construcii pentru controlul fluxului comenzilor:
if(condition) command [else] [command] while ( condition ) command do body while expr for (i=lower; i<=upper; i++) command for (item in array) command

10

1/31/10

Cutarea de tipare i editarea de rapoarte awk (2)


Se pot introduce comentarii n programe, prin linii care ncep cu # Liniile din fiierele prelucrate se consider c au structur identic, constnd din cmpuri separate prin caracterele specificate n opiunea F (implicit sunt spaiile albe) Cmpurile pot fi referite n forma: $1 primul, $2 al doilea, etc. $0 desemneaz ntreaga linie awk dispune de o serie de variabile interne predefinite, ntre care: FS separatorii de cmpuri NF numrul de cmpuri NR numrul de ordine al liniei curente FILENAME numele fiierului curent Cteva funcii predefinite: print printf getline close(file) Exemple: a) Numrarea liniilor goale dintr-un text: /^$/ { print x+=1 } b) Numrarea liniilor goale cu afiare numai la final: /^$/ { ++x} END { print x } c) Tiprirea n ordine invers a cmpurilor: { for ( i= NF; i>0; --i) print $i } Exist variante mai avansate ale comenzii: nawk i gawk, care permit, ntre altele, lucrul cu tablouri asociative

4.6. Comenzi pentru operaii asupra perifericelor(1)


Conversia i copierea fiierelor cu diferite formate: dd [option=value] if=name specificarea sursei (fiier de intrare) of=name specificarea fiierului de ieire ibs=n dimensiunea de bloc la intrare obs=n dimensiunea de bloc la ieire files=n copie n fiiere de intrare (pt. benzi) count=n copie numai n nregistrri din intrare Se poate folosi i cp n anumite situaii, ex.: cp zImage /dev/fd0 Arhivarea i restaurarea fiierelor tar [-] c|d|r|t|u|x[bBefFhilmopvwxXzZ014578] [tarfile] [blocksize] [excludefile] [-I include-file] filename -C directory filename Operaii (funcii, aciuni): c creeaz o nou arhiv d verific diferenele ntre arhiv i un sistem de fiiere r adaug fiiere la sfritul arhivei t listeaz coninutul arhivei u actualizeaz arhiva (adaug fiiere care sunt mai noi dect n arhiv) x extrage fiierele din arhiv Cteva opiuni(modificatori de aciune): f argumentul urmtor este numele arhivei v verbose se afieaz numele fiecrui fiier prelucrat w wait ateapt confirmare de la utilizator pentru fiecare aciune z produce i comprimarea / decomprimarea cu gzip

11

1/31/10

Comenzi pentru operaii asupra perifericelor(2)


Exemple de utilizare a tar: a) Crearea unei arhive comprimate cu fiierele surs C din directorul curent: tar cvzf tarCz *.c b) Extragerea n directorul curent a fiierelor dintr-o arhiv comprimat: tar xvzf tarCz Crearea unui sistem de fiiere mkfs [-V] [-t type] [fs-options] filesys [blocks] -V verbose (este implicit) afieaz detalii despre sistemul de fiiere creat -t specific tipul de sistem de fiiere creat Posibile opiuni: -N numrul de noduri index dorit -b dimensiunea de bloc dorit blocks dimensiunea dorit pentru sistemul de fiiere(implicit toat partiia) filesys este denumirea partiiei pe care se creeaz sistemul Exemplu: crearea pe un disc flexibil a unui sistem de fiiere de tipul ext2 cu blocuri de 2koctei, cu numai 64 i-noduri i 550 blocuri: mkfs b 2048 N 64 t ext2 /dev/fd0 550 Verificarea unui sistem de fiiere fsck [ -sACVRTNP ] [ -t fstype ] filesys [ ... ] [--] [ fsckoptions] Situaie de inconsisten: cdere de sistem nainte de actualizarea i-nodului la tergerea unei intrri de director (i-nodul se actualizeaz dup tergere!)

4.7. Comenzi diverse(1)


Comprimarea/decomprimarea fiierelor compress [-cvf] [-b bits] [filename ...] uncompress [-cv] [filename ...] zcat [filename ...] La comprimare fiierele date se nlocuiesc cu fiiere cu acelai nume i sufix .Z (cu c nu se afecteaz fiierele originale, rezultatul se trimite n fiierul standard de ieire acelai efect l are zcat) Factorul de comprimare este controlat prin b, cu valori ntre 9 i 16 (implicit 16) Comenzi de comprimare/decomprimare mai perfecionate: gzip/gunzip, bzip2/ bunzip2 Cutarea fiierelor dup nume find pathname-list expression Comanda caut recursiv pornind de la fiecare nume de cale din pathname-list fiiere care corespund cu expression. Nu se traverseaz legturile simbolice. Exemple pentru expression: -name filename are valoarea true dac argumentul fiier curent corespunde cu filename. Pot fi folosite nume generice ntre apostroafe. -perm onum este true dac drepturile de acces la fiier corespund cu numrul octal onum. -type c este true dac tipul fiierului este cel specificat de caracterul c (poate fi: f d b c p s). -exec command true dac valoarea returnat de command este 0. Comanda se termin cu \; frecvent n comand se folosete argumentul curent, indicat prin { }. Ex.: find . -name *.o exec rm {}\;

12

1/31/10

Comenzi diverse(2)
Evaluarea expresiilor expr arg1 operator arg2 [operator arg3 ... ] Rezultatul este scris n fiierul standard de ieire Fiecare atom din expresie trebuie separat de ali atomi prin spaiu Operatorii apar ca simboluri infix sau cuvinte cheie prefix. Parantezele trebuie citate, pentru a interzice shell-ului evaluarea lor Argumentele sunt numere sau iruri de caractere. Uneori pentru iruri trebuie aplicate mecanismele de citare Codul de retur al comenzii: 0 dac valoarea expresiei este nenul, 1 pentru expresie nul i 2 cnd expresia nu e valid Operatori aritmetici: + - * / % Operatori relaionali: = != > >= < <= Operatori logici: | & : (pt. : arg2 se caut ca tipar n arg1; rezultatul e nr. de caractere care corespund tiparului; dac tiparul e ncadrat de paranteze rezultatul e irul care corespunde ) Exemple ( se consider implementarea din bash): $ expr 5 + 10 / 2 d rezultatul 10 $ expr \( 5 + 10 \) / 2 d rezultatul 7 $ i=`expr $i + 1` valoarea variabilei de mediu i este incrementat cu 1 $ expr $i + 5 \> 10 dac i este 3, d valoarea 0 (false) $ v=program.c $ expr "$v" : '.* are rezultatul 9 $ expr "$v" : \(.*\) are rezultatul program.c $ expr "$v" : '\([a-z]*\) are rezultatul program

13

S-ar putea să vă placă și