Domanda Come posso eseguire i file .sh?


Ogni volta che apro un file .sh, lo apre in gedit al posto del terminale. Non riesco a trovare nessuna opzione simile a Clic destro → Aperta con → Altre applicazioni ... → terminale.

Come posso aprire questo file nel terminale?


246
2018-05-01 02:39


origine


Lo scopo di questo script è di impostare le variabili di env per un ulteriore utilizzo? - Rob
Non dovresti usare estensioni su script. Ad un certo punto in futuro, potresti scoprire che una lingua diversa è più adatta a svolgere il compito che sta facendo il tuo script corrente. E poi hai un problema. Mantieni il vecchio nome, con un'estensione completamente fuorviante, o lo rinomina, forse dovendo modificare un sacco di luoghi in cui viene utilizzato lo script? - geirha
Non hai bisogno dell'estensione del file. È bello avere ma non è necessario. Il sistema operativo non controlla l'estensione del file. Guarda i dati - ActionParsnip
Meh, se riscrivi foo.sh in ruby, puoi sempre usare il file .sh per avviarlo ruby foo.rb - glenn jackman
In Dolphin puoi premere F4 e si apre una console - Motte001


risposte:


Dai il permesso di esecuzione al tuo script:

chmod +x /path/to/yourscript.sh

E per eseguire il tuo script:

/path/to/yourscript.sh

Da . si riferisce alla directory corrente: if yourscript.sh si trova nella directory corrente, puoi semplificarlo per:

./yourscript.sh

377
2018-05-01 03:18



+1 solo risposta per mostrare l'aggiunta di autorizzazioni di esecuzione solo in un terminale. - Hailwood
Se fate bash /path/to/yourscript.sh allora non hai bisogno chmod +x - Aleksandr Levchuk
In realtà, puoi usare . /path/to/yourscript.sh se lo script deve impostare alcune variabili di ambiente. - Rob
Nessuno menziona il tradizionale: ./path/to/yourscript.sh (senza lo spazio dopo .)? Trovo che uno sia il più semplice e più facile da usare ... Ma comunque, ecco la mia alternativa che dovrebbe fare quasi la stessa cosa ./ sarebbe, anche se non vedo perché non lo useresti ./: (FILENAME=~/rem4space.sh;SLL=$(cat $FILENAME|head -1|sed 's:^#!\(.*\):\1:g');[ ! -z $SLL ] && exec $SLL $FILENAME;sh $FILENAME) ... modificare FILENAME a tuo piacimento. Si noti inoltre che sh sarà usato se non ci sono alternative. - MiJyn


È necessario contrassegnare gli script di shell come eseguibili per eseguirli dal file manager:

  1. Fai clic destro sul tuo .sh file e selezionare Proprietà:

    enter image description here

  2. Nel permessi scheda, controllare Permetti di eseguire il file come programma:

    enter image description here

  3. Chiudi il Proprietà finestra e fare doppio clic sul file. Apparirà una finestra di dialogo che ti darà la possibilità di eseguire lo script in un terminale:

    enter image description here


72
2018-05-01 03:02



Buono con gli screenshot - gd1
Questo non funziona su Ubuntu 13.04. Continua comunque ad aprire in gedit, non mi chiede mai di eseguire. Modifica: Nvm, imjustmatthew risponde a questo. - mpen
Prima di utilizzare questo, è necessario rendere il permesso del file per l'esecuzione usando chmod. chmod + x nomefile.sh o chmod 755 nomefile.sh - Arvind Rawat
Non ho popup! L'IDE viene aperto subito, non un popup - Green
@ DanielMöller, ecco la risposta alla tua domanda. askubuntu.com/questions/38661/how-do-i-run-sh-files/... - Akhilesh Dhar Dubey


necessario

Prima di poter eseguire il file .sh, è necessario renderlo eseguibile:

  1. Fai clic destro sul file
  2. Selezionare Proprietà
  3. Selezionare permessi
  4. Selezionare Permetti di eseguire il file come un programma

avvertimento

Assicurati di fidarti dell'origine da cui hai ottenuto il file. Potrebbe essere un virus.

Il modo molto semplice

  1. Fare doppio clic sul file
  2. Fare clic su Esegui nel terminale

Questo ha un problema. Il terminale si chiuderà immediatamente e non sarai in grado di vedere l'output.

Il modo semplice

  1. Apri Applicazioni -> Accessori -> Terminale
  2. Trascina e rilascia il file .sh nel terminale e premi Invio

Il modo in cui i professionisti lo fanno

  1. Apri Applicazioni -> Accessori -> Terminale
  2. Trova dove si trova il file .sh

    • Usa il ls e cd comandi
    • ls elencherà i file e le cartelle in cartella corrente. Fai un tentativo: digita "ls" e premi Invio.
    • Una volta che vedi la cartella in cui vuoi andare, corri cdseguito da uno spazio, seguito dal nome di una cartella
    • Se ti trovi in ​​una cartella che non volevi, esegui cd .. per andare ad un livello su
  3. Esegui il file .sh

    • Una volta puoi vedere ad esempio script1.sh con ls esegui questo:

      ./script.sh

Perché farlo in modo complicato?

Il terminale ha un ricco set di potenti strumenti accessibili digitando i comandi. I professionisti individuano il file .sh digitando ls e cd. Una volta che sei nel giusto cartella corrente puoi eseguire lo script in questo modo:

./script1.sh

oppure puoi eseguire e reindirizzare l'output su un file:

./script1.sh > out.txt

oppure puoi filtrare l'output per le parole chiave (ad esempio "mele") e quindi reindirizzare a un file:

./script1.sh | grep apples > ./only-apples

Ci sono migliaia di cose che puoi fare su quel file semplicemente digitando alcuni comandi.

Un altro, è possibile scaricare un file da Internet con un semplice comando:

wget www.google.com/images/logos/ps_logo2.png

E quindi apri il file in questo modo:

shotwell ps_logo2.png

22
2018-05-01 02:52



Non sono sicuro che Il modo in cui i professionisti lo fanno è corretto, è più un caso di modo semplice il avanzato (per il controllo dell'output) modo - Hailwood


Apri un terminale e vai alla cartella in cui si trova il .sh il file si trova. Quindi digitare:

sh <name of file>.sh

18
2017-12-20 07:43





Sui file eseguibili di Ubuntu 13.04 aperti in Nautilus ora vengono aperti in gedit per impostazione predefinita piuttosto che richiedere all'utente di eseguirli. Per abilitare il comportamento classico è necessario regolare le preferenze:

Nautilus → menu Modifica → Preferenze → scheda Comportamento → fare clic sul pulsante di opzione vicino a Chiedi ogni volta.


15
2018-06-10 21:41



La persona che ha posto la domanda sta parlando di Ubuntu 10.10 - edwin
Grazie!!! Non so perché cambino questo, non riesco a capire come eseguire qualsiasi cosa. - mpen
Questa è la risposta giusta per l'ultimo ubuntus. - gaRex
Come si arriva a Nautilus in 15.10? - Yaakov Ainspan


Vai alla directory in cui il .sh il file è usando cd. In questo esempio ho memorizzato il mio sh file come ~/Desktop/shell_practice/test.sh

prima cosa pwd per capire dove sei e se ritorna /home/username (dove username è il tuo vero nome utente), puoi correre

cd Desktop/shell/practice

Se ti sembra di essere da qualche altra parte, puoi usare il percorso assoluto

cd ~/Desktop/shell/practice

o

cd $HOME/Desktop/shell/practice

o anche

cd /home/$USER/Desktop/shell/practice

questi sono tutti modi per descrivere lo stesso posto. Una volta che hai raggiunto la posizione del tuo script, digita

ls

Se riesci a vedere il sh file nell'output, puoi usare chmod per renderlo eseguibile Nel mio caso, ricorda, il nome del file è test.sh, quindi vorrei correre

chmod u+x test.sh

Ora che siamo nella stessa directory dello script, dobbiamo specificare alla shell che vogliamo eseguire il file dando la sua posizione ./ (la directory corrente seguita da un separatore di percorso, per distinguerla dal nome file). Per eseguire il mio file, digitare:

./test.sh

Se il tuo script è stato scritto correttamente, verrà eseguito senza errori ...

Ecco un esempio dal vivo: Here is live example


5
2017-12-03 11:14



Questo ha funzionato per me per installare Netbeans su Ubuntu - RuD3B0y
Wb, @ RuD3B0y, ho cercato di mantenere le risposte migliori per i noobs, nessun contenuto high tech, se hai qualche modifica sei il benvenuto. - TheExorcist


2 passaggi principali.

  1. nel terminale, utilizzare gedit per scrivere e salvare script con estensione ".sh" sul desktop. (ma è possibile utilizzare qualsiasi editor di testo)

  2. aprire Nautilus e fare clic con il tasto destro sul file script.sh.

    • sotto Proprietà, spuntare la casella "consenti l'esecuzione del file .."

    • nel menu Nautilus, fai clic su file, quindi su Preferenze, quindi su Comportamento

    • controlla "esegui i file di testo eseguibili quando vengono aperti".

Ora, quando si fa doppio clic sul file sul desktop, dovrebbe essere eseguito. non c'è bisogno di . o ./


3
2017-10-24 14:24





In Ubuntu 16.04 questo è come aprirlo nel terminale:

Vai al File Manager > Edit > Preferences > Behavior per Executable Text Files e selezionare Ask each time.

Il problema è che per impostazione predefinita è impostato su View Executable Files when they are opened.


2
2017-12-11 19:58