从当前目录执行Shell脚本而不使用“./filename”

时间:2013-02-18 09:25:09

标签: linux shell admin

我创建了一个名为“testfile”的文件,并使用chmod +x testfile使其可执行。 为了执行文件“testfile”,我需要运行命令./testfile

我需要知道有没有办法在不使用./的情况下运行程序并使用testfile命令执行文件?

下面显示的是“testfile”文件中的一个简单代码

echo Todays date is : 
date

3 个答案:

答案 0 :(得分:8)

您可以在不使用./的情况下执行它:

sh testfile

或者

sh /path/to/file/testfile

修改
如果要直接使用命令执行程序,可以执行的操作是定义别名:

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

然后,只要你写

,你就会执行程序
execute_testfile

或您定义的任何名称。

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

答案 1 :(得分:4)

您可以在.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 / environment或者是否在其他地方指定了PATH

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

vi ~/.bashrc

添加到文件末尾

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

退出,重新登录 - 您不必再输入./.sh'

答案 2 :(得分:2)

您需要将.添加到PATH变量中,如下所示:

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