当前位置: 技术问答>linux和unix
为什么我的.sh命令必须在前面加上./*****.sh才能执行?
来源: 互联网 发布时间:2015-07-28
本文导语: 假设一个sh命令:start.sh 那么我进入这个命令所在的路径,然后输入: start.sh 却不能执行, 正确方法是: sh start.sh 可以执行, ./start.sh 也可以执行,为什么? | 看看是不是登录用户的配置文件有问题,是不...
假设一个sh命令:start.sh
那么我进入这个命令所在的路径,然后输入:
start.sh
却不能执行,
正确方法是:
sh start.sh 可以执行,
./start.sh 也可以执行,为什么?
那么我进入这个命令所在的路径,然后输入:
start.sh
却不能执行,
正确方法是:
sh start.sh 可以执行,
./start.sh 也可以执行,为什么?
|
看看是不是登录用户的配置文件有问题,是不是没有默认的shell。
我也是刚学,好像记得书上说过,不知道对不对?
我也是刚学,好像记得书上说过,不知道对不对?
|
Linux不像DOS,默认的先搜索当前路径,而Linux一般情况下是按$PATH变量去搜索的,
用户的当前路径是不包含在此变量中的,所以要执行当前路径下的start.sh(必须是有可执行属性)文件,需要明示其路径,用相对路径如./start.sh或绝对路径
用户的当前路径是不包含在此变量中的,所以要执行当前路径下的start.sh(必须是有可执行属性)文件,需要明示其路径,用相对路径如./start.sh或绝对路径
|
假设你的文件在//test/start.sh
运行的话就
./start.sh
/test/start.sh
sh start.sh
3种方法
运行的话就
./start.sh
/test/start.sh
sh start.sh
3种方法
|
Linux不像DOS,默认的先搜索当前路径,而Linux一般情况下是按$PATH变量去搜索的,
用户的当前路径是不包含在此变量中的,所以要执行当前路径下的start.sh(必须是有可执行属性)文件,需要明示其路径,用相对路径如./start.sh或绝对路径
用户的当前路径是不包含在此变量中的,所以要执行当前路径下的start.sh(必须是有可执行属性)文件,需要明示其路径,用相对路径如./start.sh或绝对路径
|
同意楼上的,Linux下的执行程序路径是由$PATH指定的,不包括当前路径,所以要用./指定.
|
在redhat里,默认情况下当前目录不在PATH搜索路径中。你可以修改$HOME/.bash_profile的PATH设置,把当前路径加上。
|
./a.out
./即当前目录,../上一级目录。
你不可能把所有目录都加到路径变量$PATH中,所以执行当前目录下的文件时用./,这是习惯。
./即当前目录,../上一级目录。
你不可能把所有目录都加到路径变量$PATH中,所以执行当前目录下的文件时用./,这是习惯。
|
据说因为有当前路径在$PATH中的话,不安全,所以还是用./a.out来的好
|
好像都是执行那些path里面的 没有的 必须全路径
|
学到一招!原来只知道这样用,忘了有没有看过资料