2013-02-18 5 views
5

Ho creato un file chiamato" testfile "e lo ha reso eseguibile utilizzando chmod +x testfile. Per eseguire il file "testfile" ho bisogno di eseguire il comando ./testfile.Esecuzione di Shell Script dalla directory corrente senza "" ./filename "

Devo sapere se è possibile eseguire il programma senza utilizzare ./ ed eseguire il file utilizzando il comando testfile?

Di seguito si riporta un semplice codice all'interno del file "testfile"

echo Todays date is : 
date 
+0

'PATH export = /: $ path', ma questo non è buono.. –

+0

Si prega di non chiamarlo 'test' perché quel comando esiste già. – dogbane

risposta

4

È possibile eseguire il programma senza ./ da utilizzando:

sh testfile 

O

sh /path/to/file/testfile 

Modifica
Se si desidera eseguire il programma direttamente con un comando, cosa si può fare è quello di definire un alias:

alias execute_testfile="sh /path/to/file/testfile" 

E poi, si eseguire il programma ogni volta che si scrivere

execute_testfile 

o qualsiasi altro nome definito.

Per rendere persistente questo alias, includere la riga alias ... nei file ~/.profile o ~/.bash_profile.

+0

Sì, ma ho bisogno di eseguire il mio file senza nessuno di quelli. Come eseguire un comando che è già in linux. es: top, ps, ls & ecc. –

+1

Ah, giusto, in questo caso ciò che si può fare è definire un alias: 'alias execute_testfile =" sh/percorso/su/file/testfile "'. E poi, ogni volta che scrivi 'execute_testfile' (o qualunque nome tu definisca), eseguirai il programma. – fedorqui

+0

Ha funzionato, grazie mille! –

2

È necessario aggiungere . alla variabile PATH in questo modo:

> echo 'echo Hello, World!' > mycommand 
> mycommand 
-bash: mycommand: command not found 
> ./mycommand 
Hello, World! 
> PATH=".:$PATH"; 
> mycommand 
Hello, World! 
> 
+0

Grazie per la risposta, ma dove aggiungo questo - 'PATH =".: $ PATH ";' –

+0

Nel tuo ~/.bashrc –

+0

@frozenhaart Prompt thin-shell prima di eseguire il comando. Aggiunti ulteriori dettagli alla risposta. –

2

È possibile definire la variabile PATH nel file .profile che è possibile trovare nella directory principale.

vi ~/.profile 

aggiungere alla fine del vostro .profile

/path/to/dir/:$PATH 

che si traduce in "aggiungi/path/to/dir/a tutto ciò è impostata la variabile PATH"

Se si desidera aggiungere una directory al PATH per tutti gli utenti del sistema è possibile:

vi /etc/environment - edit, save your changes 
source /etc/environment 
echo $PATH - should now return your new PATH 

Funziona su server di Ubuntu, direi su tutte le distribuzioni Debian, non sono sicuro se altre distribuzioni hanno/etc/environment o se PATH è specificato da qualche altra parte

Aliasing è ancora una soluzione migliore

vi ~/.bashrc 

aggiungere alla fine del file

alias <your_script> ='/path/to/your_script.sh' 

uscire, riaccedere - non dovreste necessario digitare ./.sh più'

+0

Grazie per il tuo aiuto! :) –