[risolto]Script .sh non si eseguono
Regole della sezione
In questa sezione possono inserire nuove discussioni solo coloro che fanno parte del livello "Prode Principiante" e che non hanno superato i 100 messaggi, tutti gli altri possono comunque rispondere regolarmente. Se si fa parte di questo livello e si è registrati al forum prima del 24 aprile 2012, data del passaggio al nuovo forum, consultare questa discussione.
Come usare Ubuntu • Primi passi su Ubuntu Amministrazione del sistema • Comandi di base • Installare programmi • Log di sistema • Riga di comando • Sudo
In questa sezione possono inserire nuove discussioni solo coloro che fanno parte del livello "Prode Principiante" e che non hanno superato i 100 messaggi, tutti gli altri possono comunque rispondere regolarmente. Se si fa parte di questo livello e si è registrati al forum prima del 24 aprile 2012, data del passaggio al nuovo forum, consultare questa discussione.
Come usare Ubuntu • Primi passi su Ubuntu Amministrazione del sistema • Comandi di base • Installare programmi • Log di sistema • Riga di comando • Sudo
-
- Prode Principiante
- Messaggi: 48
- Iscrizione: giovedì 19 maggio 2022, 13:35
- Desktop: kde
- Distribuzione: arch
- Sesso: Maschile
[risolto]Script .sh non si eseguono
Come mai se creo uno script e tento di eseguirlo ricevo il seguente messaggio?
Codice di errore sconosciuto: 100
execvp: Formato eseguibile non valido
Invia una segnalazione dettagliata di bug a https://bugs.kde.org.
il file è nella mia home, ha i permessi di esecuzione, se lo copio nella bash i comandi funzionano, è solo che non si può eseguire come facevo prima con un'altra distro...
Codice di errore sconosciuto: 100
execvp: Formato eseguibile non valido
Invia una segnalazione dettagliata di bug a https://bugs.kde.org.
il file è nella mia home, ha i permessi di esecuzione, se lo copio nella bash i comandi funzionano, è solo che non si può eseguire come facevo prima con un'altra distro...
Ultima modifica di noglep100 il giovedì 19 maggio 2022, 22:05, modificato 1 volta in totale.
- Clover
- Scoppiettante Seguace
- Messaggi: 298
- Iscrizione: giovedì 30 agosto 2012, 14:04
- Desktop: KDE
- Distribuzione: Kubuntu x86_64
Re: Script .sh non si eseguono
Perché, probabilmente, non hai messo nella prima riga dello script l'interprete che deve essere usato per eseguirlo.
Per esempio per uno script python la prima riga deve essere
oppure per uno script sh
Per esempio per uno script python la prima riga deve essere
Codice: Seleziona tutto
#!/usr/bin/python3
Codice: Seleziona tutto
#!/bin/sh
Re: Script .sh non si eseguono
Hai verificato che lo shebang in intestazione punti all'interprete corretto? Sul mio Kubuntu 20.04, ad esempio è, #!/bin/bashnoglep100 ha scritto: ↑giovedì 19 maggio 2022, 15:34Come mai se creo uno script e tento di eseguirlo ricevo il seguente messaggio?
Codice di errore sconosciuto: 100
execvp: Formato eseguibile non valido
Invia una segnalazione dettagliata di bug a https://bugs.kde.org.
il file è nella mia home, ha i permessi di esecuzione, se lo copio nella bash i comandi funzionano, è solo che non si può eseguire come facevo prima con un'altra distro...
Io non sono Bagheera né Akela, io non frequento la Rupe.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
-
- Scoppiettante Seguace
- Messaggi: 363
- Iscrizione: venerdì 10 dicembre 2021, 18:33
- Desktop: fvwm
- Distribuzione: (X)Ubuntu20@home; openSUSE42.3@work
- Sesso: Maschile
- Località: Paneropoli
Re: Script .sh non si eseguono
Spero sia chiara all'OP la distinzione tra uno script e un source file.
- uno script viene eseguito in un altro processo, che puo' essere un "sottoshell" (una altra istanza dello shell in cui si lavora), un altro shell (tcsh sh bash ...), o un altro interprete (awk, perl, python, expect ...)
- per cui la prima riga dello script deve contenere la "shebang" gia' citata ossia una specie di commento che dice sotto quale shell o interprete deve girare
- il file contenente lo script deve avere permesso di esecuzione (chmod u+x)
- lo script si invoca per nome
- un source file e' una lista di comandi dello shell corrente da eseguire nello stesso processo
- non richiede di avere permesso di esecuzione
- si invoca normalmente con modalita' dipendenti dallo shell (p.es. source nomefile in tcsh, . nomefile in sh). Per invocarlo per nome occorre definire un alias
- Corollario 1: qualsiasi comando "setenv" che assegna o modifica una variabile di environment ha effetto solo nel processo in cui viene emessa. Per cui uno script una volta terminato NON modifica l'environment dello shell corrente. Un source file si.
- Corollario 2: uno script prende argomenti. Un source file no (a meno di accrocchi che tralascio)
The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. (G.B. Shaw)
Re: Script .sh non si eseguono
Mai usato un source file (volontariamente), eccezion fatta per il .bashrc
Io non sono Bagheera né Akela, io non frequento la Rupe.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
-
- Prode Principiante
- Messaggi: 48
- Iscrizione: giovedì 19 maggio 2022, 13:35
- Desktop: kde
- Distribuzione: arch
- Sesso: Maschile
Re: Script .sh non si eseguono
... è vero era lo shebang errato .. adesso funziona era #!/bin/sh
grazie
grazie
-
- Scoppiettante Seguace
- Messaggi: 363
- Iscrizione: venerdì 10 dicembre 2021, 18:33
- Desktop: fvwm
- Distribuzione: (X)Ubuntu20@home; openSUSE42.3@work
- Sesso: Maschile
- Località: Paneropoli
Re: Script .sh non si eseguono
Io invece si' proprio per l'esigenza di settare delle variabili di environment.
Indipendentemente dai miei usi e dalla loro storia, molti package di analisi astronomica vengono distribuiti con uno o piu' source file (tipicamente uno per ogni shell piu' diffuso) di inizializzazione, da "sorciare" come primo comando.
The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. (G.B. Shaw)
Re: Script .sh non si eseguono
Ma certo! Anch'io con i pacchetti di chimica computazionale dovevo settare variabili d'ambiente, definire alias e quant'altro.Lucio C ha scritto: ↑giovedì 19 maggio 2022, 18:31Io invece si' proprio per l'esigenza di settare delle variabili di environment.
Indipendentemente dai miei usi e dalla loro storia, molti package di analisi astronomica vengono distribuiti con uno o piu' source file (tipicamente uno per ogni shell piu' diffuso) di inizializzazione, da "sorciare" come primo comando.
Ma tutto si riduceva a poche righe di inizializzazione da buttare dentro nell'rc file della shell di turno. E morta lì senza bisogno di sourciare nulla.
Ie, basta aprire un nuovo terminale ed è già tutto lì: al massimo il source di altri file di inizializzazione lo faccio direttamente dal mio rc, così ne gestisco uno solo per tutti (ricordo bene gli alias per settare variabili d'ambiente in modo differenziato su più release concomitanti della stessa costosissima suite). Un po' come faccio tutt'ora a livello casalingo: le configurazioni comuni le faccio caricare dal .bashrc di ogni utente pescando da un /etc/bashrc comune.
Quello che intendevo scrivere è che non mi faccio la sbatta di gestire manualmente mille source file per ogni singola circostanza.
...ma tutto questo che ha a che fare con il fatto che l'OP non riesca a lanciare uno script???
Io non sono Bagheera né Akela, io non frequento la Rupe.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
-
- Scoppiettante Seguace
- Messaggi: 363
- Iscrizione: venerdì 10 dicembre 2021, 18:33
- Desktop: fvwm
- Distribuzione: (X)Ubuntu20@home; openSUSE42.3@work
- Sesso: Maschile
- Località: Paneropoli
Re: Script .sh non si eseguono
Siccome di solito tra le varie cose che fanno questi file di inizializzazione e' settare $PATH, a me spesso torna utile sourciarne uno in uno specifico terminale (evita conflitti). Con le esigenze dell'OP si tratta solo di cultura generale tra script e source file.
Se l'OP mettesse [Risolto] sul titolo del primo post, si chiuderebbe il thread.
Se l'OP mettesse [Risolto] sul titolo del primo post, si chiuderebbe il thread.
The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. (G.B. Shaw)
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 7 ospiti