Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Linux bash $0

  1. #1
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837

    Linux bash $0

    ho bisogno di estrarre il path completo allo script in esecuzione
    spiego
    #! /bin/bash
    MYPATH=$0
    quando eseguo questo script MYPATH vale ./nome_dello_script
    mi serve il percorso completo allo script

    se questo non fosse possibile, mi serve un modo per creare un file nella stessa directory dello script in esecuzione
    io devo eseguire uno script che crea un file nella stessa sua directory
    se lo eseguo dalla dir tutto va bene
    ma se lo eseguo (ad esempio) da / con questo comando /percorso_assoluto/script.sh lui crea il file in /

    per i moderatori: la mia richiesta puō essere vista come programmazione, in fondo in una shell si programma a tutti gli effetti
    se credete sia meglio la sezione programmazione, spostate pure il thread
    grazie

  2. #2
    Utente di HTML.it L'avatar di cacao74
    Registrato dal
    Jan 2005
    Messaggi
    2,570
    Lancia lo script con il suo percorso assoluto e poi utilizza il comando "dirname" per recuperare la directory che contiene lo script stesso.

    ciao
    slack? smack!

  3. #3
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    ho provato
    dirname
    dirname .
    dirname nome_script
    il primo dā errore, gli altri scrivono "."
    a ogni modo non posso lanciare lo script completo del suo path
    devo trovare un modo per capire "dove sta lo script"

  4. #4
    man pwd .
    NeapoliX GNU/Linux
    "Alla maggior parte della gente piace leggere la propria scrittura e annusare l'odore dei propri peti." (Auden)

  5. #5
    Utente di HTML.it L'avatar di cacao74
    Registrato dal
    Jan 2005
    Messaggi
    2,570
    Originariamente inviato da floyd
    ho provato
    dirname
    dirname .
    dirname nome_script
    il primo dā errore, gli altri scrivono "."
    a ogni modo non posso lanciare lo script completo del suo path
    devo trovare un modo per capire "dove sta lo script"
    Prima cosa: man dirname
    Seconda cosa:
    codice:
    [cacao74@tweety ~]$ cat /tmp/cacao.sh 
    #!/bin/bash
    echo "Questo script si trova in `dirname $0`."
    exit 0
    [cacao74@tweety ~]$ /tmp/cacao.sh 
    Questo script si trova in /tmp.
    slack? smack!

  6. #6
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    il fatto č che questo č uno script che esegue un piccolo server
    non posso obbligare i sistemisti a lanciarlo in un determinato modo
    ad esempio se lo eseguo con
    . /path_completo/script ma anche senza il path
    dirname $0 ritorna "."
    pwd non basta
    credo di dover trovare una soluzione diversa, grazie lo stesso

  7. #7
    Io non ho proprio capito il problema...
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  8. #8
    #!/bin/bash
    me=$(echo `dirname $0`)
    zenity --info --text $me
    exit 0

  9. #9
    Utente di HTML.it L'avatar di cacao74
    Registrato dal
    Jan 2005
    Messaggi
    2,570
    ti faccio un ulteriore esempio di quanto scritto prima, sempre utilizzando dirname:
    codice:
    #!/bin/bash
    # pwd.sh
    #
    WORKDIR=$(dirname $0)
    FILENAME=cacao.txt
    echo "eseguo lo script da $PWD"
    echo "cambio directory in $WORKDIR"
    cd $WORKDIR
    echo "mi trovo in: $PWD"
    echo "e creo un file vuoto $FILENAME"
    touch $FILENAME
    ls -l $FILENAME
    exit 0
    qui, un esempio di esecuzione:
    codice:
    cacao74@slack64:~/src/scripts$ pwd
    /home/cacao74/src/scripts
    cacao74@slack64:~/src/scripts$ /tmp/pwd.sh
    eseguo lo script da /home/cacao74/src/scripts
    cambio directory in /tmp
    mi trovo in: /tmp
    e creo un file vuoto cacao.txt
    -rw-r--r-- 1 cacao74 users 0 2010-07-19 01  cacao.txt
    cacao74@slack64:~/src/scripts$ pwd
    /home/cacao74/src/scripts
    cacao74@slack64:~/src/scripts$ ls -l /tmp/cacao.txt
    -rw-r--r-- 1 cacao74 users 0 2010-07-19 01:10 /tmp/cacao.txt
    ps... sicuramente i tuoi sistemisti sono in grado di fare quanto sopra...
    slack? smack!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.