2013-02-18 9 views
5

Utworzono plik o nazwie "testfile" i wykonałem go przy użyciu chmod +x testfile. Aby wykonać plik "plik testowy", muszę uruchomić polecenie ./testfile.Wykonywanie skryptu powłoki z bieżącego katalogu bez "./filename"

Muszę wiedzieć, czy istnieje sposób, w jaki mogę uruchomić program bez korzystania z ./ i wykonać plik przy użyciu polecenia testfile?

Poniżej jest prosty kod wewnątrz pliku „testfile”

echo Todays date is : 
date 
+0

' export PATH = /: $ PATH', ale to nie jest dobre.. –

+0

Proszę nie nazywać tego 'test', ponieważ to polecenie już istnieje. – dogbane

Odpowiedz

4

Można wykonać go bez ./ przez przy użyciu:

sh testfile 

Or

sh /path/to/file/testfile 

Edit
Jeśli chcesz uruchomić program bezpośrednio z polecenia, co można zrobić, to określić alias:

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

a następnie będzie uruchomić program w dowolnym momencie napisz

execute_testfile 

lub dowolne zdefiniowane przez ciebie imię.

Aby uczynić ten alias trwałym, dołączamy linię alias ... do plików ~/.profile lub ~/.bash_profile.

+0

Tak, ale muszę wykonać mój plik bez żadnego z nich. Podobnie jak wykonywanie polecenia, które jest już w systemie Linux. eg: top, ps, ls i itp. –

+1

Ach, racja, w tym przypadku możesz zdefiniować alias: alias execute_testfile = "sh/path/to/file/testfile" '. A potem, za każdym razem, gdy napiszesz 'execute_testfile' (lub dowolną nazwę, którą zdefiniujesz), wykonasz program. – fedorqui

+0

Zadziałało, dziękuję bardzo! –

2

Trzeba dodać . do zmiennej PATH tak:

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

Dzięki za odpowiedź, ale gdzie mogę to dodać - 'PATH =".: $ PATH ";' –

+0

W twoim ~/.bashrc –

+0

@frozenhaart Zrób cienką powłokę przed uruchomieniem polecenia. Dodano więcej szczegółów do odpowiedzi. –

2

Można zdefiniować zmienną PATH w pliku .profile, który można znaleźć w katalogu domowym.

vi ~/.profile 

Dodaj do końca swojej .profile

/path/to/dir/:$PATH 

co przekłada się na "dodaj/ścieżka/do/dir/aby cokolwiek zmienna PATH jest ustawiona"

Jeśli chcesz dodaj katalog do PATH dla wszystkich użytkowników systemu, możesz:

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

Działa na serwerze Ubuntu, zgaduję na wszystkich dystrybucjach Debiana, nie jestem pewien, czy inne dystrybucje posiadają/etc/environment lub jeśli PATH jest określona gdzie indziej

Aliasing jest jeszcze lepszym rozwiązaniem

vi ~/.bashrc 

Dodaj do końca pliku

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

zaloguj się, zalogować się ponownie - nie powinno trzeba wpisać ./.sh już”

+0

Dzięki za pomoc! :) –