Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    156

    [BASH] Trasformare percorso relativo in percorso assoluto

    Salve a tutti,
    ho scritto uno script e avrei l'esigenza che il secondo argomento passato da riga di comando (una directory) venga trasformato in un percorso assoluto, nel caso si trattasse di un percorso relativo.

    per esempio
    codice:
    mioscript.sh arg1 miadir
    a questo punto lo script dovrebbe trasformare miadir (percorso relativo) in $PWD/miadir (percorso assoluto)

    avevo pensato di fare così
    codice:
    #!/bin/bash
    
    DEST=$2
    
    # Se il secondo argomento non inizia con uno slash lo trasformo in un percorso assoluto
    [ "${$2:0:1}" != "/" ] && DEST=${PWD}/$2
    
    echo "$DEST"
    
    
    exit 0
    L'istruzione sopra riportata funziona ma mi chiedevo se fosse il modo giusto di procedere.. Soprattutto mi chiedevo se nel confronto di stringhe si potesse mettere direttamente il carattere da confrontare ( il carattere "/" ) oppure fosse meglio collocarlo in una variabile ed eseguire il confronto con quella.. Una cosa del tipo

    codice:
    #!/bin/bash
    
    SLASH=/
    DEST=$2
    
    
    [ "${$2:0:1}" != "$SLASH" ] && DEST=${PWD}/$2
    
    exit 0
    Grazie.

  2. #2

    Re: [BASH] Trasformare percorso relativo in percorso assoluto

    Originariamente inviato da ilmo lesto
    Salve a tutti,
    ho scritto uno script e avrei l'esigenza che il secondo argomento passato da riga di comando (una directory) venga trasformato in un percorso assoluto, nel caso si trattasse di un percorso relativo.

    per esempio
    codice:
    mioscript.sh arg1 miadir
    a questo punto lo script dovrebbe trasformare miadir (percorso relativo) in $PWD/miadir (percorso assoluto)

    avevo pensato di fare così
    codice:
    #!/bin/bash
    
    DEST=$2
    
    # Se il secondo argomento non inizia con uno slash lo trasformo in un percorso assoluto
    [ "${$2:0:1}" != "/" ] && DEST=${PWD}/$2
    
    echo "$DEST"
    
    
    exit 0
    L'istruzione sopra riportata funziona ma mi chiedevo se fosse il modo giusto di procedere.. Soprattutto mi chiedevo se nel confronto di stringhe si potesse mettere direttamente il carattere da confrontare ( il carattere "/" ) oppure fosse meglio collocarlo in una variabile ed eseguire il confronto con quella.. Una cosa del tipo

    codice:
    #!/bin/bash
    
    SLASH=/
    DEST=$2
    
    
    [ "${$2:0:1}" != "$SLASH" ] && DEST=${PWD}/$2
    
    exit 0
    Grazie.
    I due metodi sono equivalenti, il primo è più diretto, ma alla fine portano allo stesso risultato, quindi usa uno dei due indifferentemente
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.