Close

Risultati da 1 a 8 di 8
  1. #1

    Rendere eseguibile uno script bash

     

    Ciao, vista l'enorme utilità, mi sono lanciato con molto entusiasmo nella programmazione delle shell bash su Leopard. Sono incappato però subito in uno scoglio che non riesco a superare da solo: come si fa a rendere uno script eseguibile con il buon vecchio doppio click del maus?

    I miei script li ho compilati con Emacs e li ho salvati con estensione .sh, li ho "autorizzati" da terminale tramite chmod u+rx nomefile ed ho provato quindi a lanciarli da terminale: tutto OK.
    Quando vado però a fare doppio click non vengono però eseguiti ma semplicemente aperti con Emacs.

    Sapete dirmi dove sbaglio?

  2. #2
    un Amico di Mac Peer L'avatar di flashcream
    Data Registrazione
    Apr 2005
    Località
    Bergamo
    Messaggi
    38,388
    lo script deve essere eseguibile (chmod +x nome.sh) e forse come prima riga manca #!/bin/bash (cioè che deve utilizzare la shell bash).

    in pratica il tuo script non è visto come eseguibile e cmq da chi l'ha creato: questione di metadata e/o di estensione. prova anche solo semplicemnte a rinominarlo .command

  3. #3
    Come prima riga ho usato #!/bin/bash ed infatti se lo lancio da terminale lo script viene eseguito correttamente. La cosa che non mi riesce fare è fare si che lo script vrnda eseguito semplicemente facendo doppio click sulla sua icona.

    Ho provato a cambiare estensione in .command e ad aprirlo co il terminale ma mi da il seguente errore:

    RR-2:~ riccardoromoli$ /Users/riccardoromoli/Desktop/Superpippo/Sincronizzazione.command ; exit;
    building file list ... rsync: link_stat "/Users/riccardoromoli/Pippo" failed: No such file or directory (2)
    done

    sent 29 bytes received 20 bytes 98.00 bytes/sec
    total size is 0 speedup is 0.00
    rsync error: some files could not be transferred (code 23) at /SourceCache/rsync/rsync-35.2/rsync/main.c(992) [sender=2.6.9]
    logout

    [Processo completato]

    Pippo e Pippo2 sono due cartelle che uso per prova. Lo script serve per sincronizzare i files contenuti in Pippo con la cartella Pippo2.

  4. #4
    un Amico di Mac Peer L'avatar di flashcream
    Data Registrazione
    Apr 2005
    Località
    Bergamo
    Messaggi
    38,388
    prego. crea un'applicazione con automator dei tuoi comandi. (esegui uno script shell e copi/incolli #!/bin/bash al posto di cat e a seguire e a capo i tuoi comandi). sicuro che poi si avvia il terminale con un doppio clik. come farlo è cmq più volte nel forum, anche con immagini.

    come più semplice apple script info qui: http://www.tuttologia.com/tutorial/b...plescript.html

  5. #5
    Grazie. Quando ho provato ti faccio sapere.

  6. #6
    Ho provato a rendere eseguibile il file con Autometor ma non mi è riuscito.

    Il suggerimento di usare ApopleScript è buono ma avendo la necessità di spostare gli script anche su altre piattaforme (Linux) sono costretto a scriverle come shell bash.

  7. #7
    un Amico di Mac Peer L'avatar di flashcream
    Data Registrazione
    Apr 2005
    Località
    Bergamo
    Messaggi
    38,388
    Citazione Originariamente Scritto da Rici Visualizza Messaggio
    Ho provato a rendere eseguibile il file con Autometor ma non mi è riuscito.
    strano perchè riesce (e i topic nel forum sono testimoni). come sai scrivere in un forum che una cosa non riesce non vuol dire niente. ci sarà sempre qualcuno, a torto o a ragione, che ti dirà il contrario. se vuoi degli aiuti concreti si devono sempre leggere tutti i particolari.

    solo che, vista l'esigenza di spostare lo script su altre piattaforme di cui si legge ora, la strada automator non andava neppure intrapresa. il problema è quello già detto sopra: questione di risorse e metadati del file che viene aperto dal creatore (emacs) piuttosto dall'applicazione deputata ad eseguire il file. se l'aspetto dell'eseguibilità è stato considerato (ripeto: chmod +x nome.sh), altro personalmente non so aggiungere, ma dai un occhio a RCdefault app. buona ricerca su questo punto.

  8. #8
    Quando clicchi due volte sul file, ti si apre TextEdit perchè il file è associato a quel programma.
    Fai così: click destro sul file > in "Apri con", seleziona il terminale (se non è nell'elenco, clicca "altro").

    In ogni caso, portando il file su Linux non avrai problemi.

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •