Někdy jsou některé výukové programy zaměřeny na vysvětlení poněkud exotičtějších a podivnějších příkazů, na druhou stranu existují některé, které obsahují sériové distribuce a nejsou tak populární jako cd, ls, cat atd., Ale jsou stejně praktické. V tomto tutoriálu vám ukážu, co lze udělat se dvěma z těchto příkazů: basename a řekni mi.
Možná se vám apriori zdají absurdní a že k ničemu, ale mají docela praktické aplikace v některých případech, například ve skriptech, kde je nutné extrahovat část cesty, například název souboru nebo adresáře, aby na tento příkaz fungoval jiný příkaz ...
Na co jsou
Tyto příkazy jsou velmi základní a jeho funkce Zvuk:
- základní jméno: slouží k extrakci názvu souboru z cesty.
- řekni mi: slouží k extrakci názvu adresáře z cesty.
Příklady použití
Zde můžete vidět některé příklady jak je používat:
- Například použít základní jméno s / etc / passwd a že vrátí název souboru ve svém výstupu, v tomto případě passwd:
basename /etc/passwd
- Můžete také určit rozšíření takže vám dá název souboru bez přípony. Předpokládejme například, že chcete extrahovat název obrázku /home/media/test.jpg bez přípony jpg (vrátilo by se Prueba):
basename -s .jpg /home/media/prueba.jpg
- Můžete dokonce zpracovat více tras najednou samostatně, k tomu musíte použít volbu -a:
basename -a /etc/passwd /var/log/boot.log
- Chcete-li udělat opak a dát vám název adresáře, bez názvu souboru, musíte použít řekni mi. Například pokud jej chcete použít v cestě /var/spool/mail/test.txt a nechat jej vrátit / var / spool / mail, použijte:
dirname /var/spool/mail/prueba.txt
Co se týče a nástroj ve skriptu, zde máte další příklad. Představte si, že máte jednoduchý skript a že v něm existuje proměnná cesta. Ale chcete, aby zobrazoval adresář, který obsahuje soubor, bez ohledu na soubor, v takovém případě můžete mít něco jako:
pathname="/home/usuario/data/fichero" result=$(dirname "$pathname") echo $result
Je zřejmé, že v tomto skriptu by „cesta“ byla vždy stejná statická deklarovaná konstantou na začátku, ale mohou existovat případy, kdy tomu tak není, a to je místo, kde stane se to praktické. Například:
/*script para convertir una imagen gif en png*/ #!/bin/sh for file in *.gif;do #Salir si no hay ficheros if [! -f $file];then exit fi b='basename $file .gif' echo NOW $b.gif is $b.png giftopnm $b.gif | pnmtopng >$b.png done
Dobrým příkladem těch věcí, které když se učíte, vidíte zbytečné, ale když se dostanete k tématu, uvidíte, jak jsou praktické.