Dažreiz dažu apmācību mērķis ir izskaidrot nedaudz eksotiskākas un dīvainākas komandas, no otras puses, ir dažas, kas ietver sērijveida izplatīšanu un nav tik populāras kā cd, ls, cat utt., Taču tās ir tikpat praktiskas. Šajā apmācībā es jums parādīšu, ko var izdarīt ar divām no šīm komandām: basename un pasaki man.
Varbūt a priori tie jums šķiet absurdi un ka viņiem nav nekā, taču tā ir diezgan praktiski pielietojumi dažos gadījumos, piemēram, skriptos, kur nepieciešams izvilkt kādu ceļa daļu, piemēram, faila vai direktorija nosaukumu, lai šajā darbotos cita komanda ...
Kam tie domāti
Šīs komandas ir ļoti vienkāršas, un tās funkcijas skaņa:
- bazename: tiek izmantots faila nosaukuma iegūšanai no ceļa.
- pasaki man: tiek izmantots direktorija nosaukuma iegūšanai no ceļa.
Lietošanas piemēri
Šeit jūs varat redzēt dažus piemēri kā tos izmantot:
- Piemēram, lai izmantotu bazename ar / etc / passwd un ka tā atgriež faila nosaukumu savā izvadē, šajā gadījumā passwd:
basename /etc/passwd
- Varat arī norādīt pagarinājums tā, lai tas jums piešķir faila nosaukumu bez paplašinājuma. Piemēram, pieņemsim, ka vēlaties izvilkt attēla /home/media/test.jpg nosaukumu bez paplašinājuma jpg (tas atgrieztos prueba):
basename -s .jpg /home/media/prueba.jpg
- Jūs pat varat apstrādāt vairākus maršrutus vienlaikus atsevišķi, tam jāizmanto opcija -a:
basename -a /etc/passwd /var/log/boot.log
- Lai rīkotos pretēji un norādītu direktorija nosaukumu bez faila nosaukuma, jums tas jāizmanto pasaki man. Piemēram, ja vēlaties to izmantot ceļā /var/spool/mail/test.txt un lai tas atgrieztos / var / spool / mail, izmantojiet:
dirname /var/spool/mail/prueba.txt
Kas attiecas uz a lietderība skriptā, šeit jums ir vēl viens piemērs. Iedomājieties, ka jums ir vienkāršs skripts un ka tajā ir mainīgs ceļš. Bet jūs vēlaties, lai tas neatkarīgi no faila parādītu direktoriju, kurā ir fails, tādā gadījumā jums varētu būt kaut kas līdzīgs:
pathname="/home/usuario/data/fichero" result=$(dirname "$pathname") echo $result
Acīmredzot šajā scenārijā "ceļa nosaukums" vienmēr būtu tāds pats statiskais, ko sākumā deklarēja konstante, taču var būt gadījumi, kad tā nav, un tieši šeit tas kļūst praktiski. Piemēram:
/*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
Labs piemērs tām lietām, kuras mācoties jūs redzat bezjēdzīgu, bet, nonākot pie priekšmeta, redzat, cik tās ir praktiskas.