redenumirea fișierelor

Iată un alt exemplu: doriți să compare două director. Asigurați-l destul de ușor pentru a găsi toate fișierele (nu directoare) în primul director, și apoi să le compare cu aceleași fișiere într-un alt director

chiar înainte ca, echipa găsi tip f | wc frumos -l pentru a vedea cât de multe fișiere sunt în directoarele. Și ca urmare algoritmul nostru, nu putem găsi „extra“ fișiere, care se află în al doilea director, dar nu și în primul.

Script-ul este foarte simplu, dar ilustrează unele dintre punctele mai fine de integrare și seamănă cu bash sed.

Exemplul 4.13. Compara directoare.

După numele primului director nu ar trebui să fie un slash, acesta poate fi corectat, dar eu sunt prea leneș.


Totul este simplu: echipa derivată întâi prin modificator PE, și apoi efectuate, ceva ar fi fost vizibil ca exista un proces (poate fi un alt SED pentru a adăuga ceva pentru a face frumos), dar rezultatul (acest număr este 0 dacă aceleași fișiere) oriunde Acesta nu este afișat și verificat. În cazul în care aceleași fișiere, vom trece la testarea noului cuplu, dar dacă sunt diferite - vom afișa codul de retur și va întrerupe script-ul. În acest caz, emite mesajul cmp de diagnosticare, vom vedea pe terminal, deoarece se duce la fluxul de eroare.

avertisment

Acordați atenție la screening-ul după $ ecoul: acest lucru este necesar, este de a executa comanda echo $?. în cazul în care slash nu este pentru screening-ul, de $ variabila? Acesta a arătat prea devreme, și va conține găsi codul de retur. și nu cmp. așa cum avem nevoie. Este din cauza acestor trucuri mi place script-uri în ghilimele duble. Cu toate acestea, ghilimelele sunt necesare aici: faptul că script-ul nu funcționează pe fișiere cu un singur citat: Acest citat sparge numele în două părți, cu partea a doua rămâne între partea citat - că învelișul natural nu poate înțelege, și de a face să refuze. Cel mai simplu mod de a partaja un nume în trei părți:

  1. începutul numelui „head“
  2. apostrof, ceva care să-l treacă în shell-comandă pe care le-o zakavychivaem: „„“apostrof nu funcționează în interiorul dublu.
  3. Am stat „coada“.

Combinând toate împreună, vedem că fiecare citat trebuie să fie schimbat într-o secvență de „“ „““. Ei bine, ca toate script-ul nostru este inclus în ghilimele simple, și în general executate de shell, este necesar să se scape ghilimelele duble (din caracterele shell-script sunt trimise la utilitatea sed, și din ea sunt transmise celeilalte, carcasa interioară). Toate acestea se face echipa de la începutul sed-script.

Cu toate acestea, nu am pus această comandă în script-ul dvs. - pentru că el nu se poate compara fișiere cu citate în numele lor (încercați să-l singur).

Puteți dona o cantitate mică de Yandex-bani în contul 41001666004238 pentru găzduirea de plată, pe Internet, și altele. Acesta este, desigur, de voluntariat, dar este mult îmbunătăți acest document (voi avea mai mult timp să-l îmbunătățească). De fapt, proiectul este de multe ori pe punctul de închidere, pentru că nu sunt bani nu a adus și nu va aduce. Tu mă poți ajuta. Mulțumesc.

articole similare