JBlack Skrevet 30. mai 2005 Del Skrevet 30. mai 2005 (endret) Holder på med et lite bash script, og vil ha en usage melding ala: echo "Usage: $0 blablbalblba" Men $0 returnerer hele pathen, f.x: /home/jblack/bin/mycoolscript.sh Jeg vil kun ha selve filnavnet uten path: mycoolscript.sh Hva er beste måten? Edit: For læringens skyld, hvilke forskjellige rimelig enkle måter finnes det? Endret 30. mai 2005 av JBlack Lenke til kommentar
☀ ❄ Skrevet 30. mai 2005 Del Skrevet 30. mai 2005 (endret) man basename Edit: Ok, det er egentlig så enkelt at TFM er unødvendig. echo "Usage: `basename $0` blablablabla" Endret 30. mai 2005 av Myubi Lenke til kommentar
JBlack Skrevet 30. mai 2005 Forfatter Del Skrevet 30. mai 2005 Tnx myubi, den er praktisk. Jeg fant denne på nett ved å søke: echo "Usage: ${0##*/} blabbla" Jeg har ingen anelse om hvordan det fungerer. Lenke til kommentar
Entropi Skrevet 25. juli 2005 Del Skrevet 25. juli 2005 Tnx myubi, den er praktisk. Jeg fant denne på nett ved å søke: echo "Usage: ${0##*/} blabbla" Jeg har ingen anelse om hvordan det fungerer. ${0} inneholder full path til det kjørende programmet. Konstruksjonen ${a##b} sletter den lengste matchen av b fra begynnelsen av a. I eksemplet er b da "*/", som da vil slette alt frem til og med den siste forekomsten av '/' fra strengen ${0}. Dvs. i strengen "/path/til/program.sh" vil "/path/til/" bli slettet siden det er den lengste forekomsten av den ekspanderte "*/", og man står igjen med "program.sh". man bash forklarer dette mer inngående og kanskje litt lettere enn meg. (Enkel måte å finne avsnittet på, er å skrive /##<enter> når man er i man-siden.) Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå