2013-02-18 107 views
5

我创建了一个名为“testfile”的文件,并使用chmod +x testfile可执行该文件。 为了执行文件“testfile”,我需要运行命令./testfile从当前目录执行Shell脚本而不使用'“./filename”

我需要知道有没有什么办法可以运行程序而不使用./并使用testfile命令执行文件?

下面显示的是“testfile”文件

echo Todays date is : 
date 
+0

'出口PATH = /:$ PATH',但是这是不好的。 – 2013-02-18 09:26:28

+0

请不要将它称为'test',因为该命令已经存在。 – dogbane 2013-02-18 09:31:22

回答

4

您可以执行它没有./使用:

sh testfile 

或者

sh /path/to/file/testfile 

编辑
如果您想直接与命令执行程序,你可以做的就是定义一个别名:

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

然后,你将执行该程序时,你写

execute_testfile 

或您定义的任何名称。

要使此别名持久化,请在〜/ .profile或〜/ .bash_profile文件中包含alias ...行。

+0

是的,但我需要执行我的文件没有任何这些。就像执行已经在linux中的命令一样。例如:top,ps,ls等 – 2013-02-18 09:45:04

+1

啊,对,在这​​种情况下,你可以做的是定义一个别名:别名execute_testfile =“sh/path/to/file/testfile”。然后,无论何时写'execute_testfile'(或者你定义的任何名字),你都会执行这个程序。 – fedorqui 2013-02-18 09:47:04

+0

它的工作,非常感谢你! – 2013-02-18 09:51:43

2

您需要添加.PATH变量像这里面一个简单的代码:由

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

感谢您的回复,但我在哪里添加 - PATH =“。:$ PATH”;' – 2013-02-18 09:28:59

+0

在〜/ .bashrc中 – 2013-02-18 09:31:12

+0

@frozenhaart在运行命令之前在shell提示符下执行瘦命令。在答案中增加了更多细节。 – 2013-02-18 09:33:45

2

您可以在.profile文件中定义PATH变量,您可以在主目录下找到它。

vi ~/.profile 

添加到您的.profile文件

/path/to/dir/:$PATH 

结束转换为 “添加/路径/到/ DIR /对什么PATH变量设置”

如果你想添加目录到PATH的系统,你可以的所有用户:

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

Ubuntu的服务器上的作品,我猜想所有Debian发行版,我不知道其他发行中的/ etc /环境,或者如果PATH中指定的其他地方

别名仍然是一个更好的解决方案

vi ~/.bashrc 

添加到该文件的末尾

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

注销,重新登录 - 你不应该必须再输入./.sh”

+0

感谢您的帮助! :) – 2013-02-19 04:17:26