Linux 脚本 sh 和 ./ 的区别

为什么有的脚本要用sh命令,有的要用./来执行?有什么区别?... 为什么有的脚本要用sh命令,有的要用./来执行?有什么区别? 展开
 我来答
百度网友79faf363
2019-11-22 · TA获得超过1.1万个赞
知道小有建树答主
回答量:1212
采纳率:75%
帮助的人:54.5万
展开全部

区别只有一点:

sh表示脚本默认使用sh脚本解释器。

未指定脚本解释器默认为 ./。

具体解释:

使用“./”执行脚本,对应的xxx.sh脚本必须要有执行权限。

使用“sh” 执行脚本,对应的xxx.sh没有执行权限,亦可执行。

当脚本开头使用#!设置使用的shell类型时,使用“./”执行脚本时,则使用“#!”标志的shell执行脚本;若无使用“#!”标记,则使用系统设置的默认shell执行脚本。

扩展资料:

举例:

登录用户root查看权限:

-rwx—— 1 root root

执行这个shell脚本 :

./test 成功。

sh test 成功。

去掉执行权限x:

-rw——- 1 root root 17 2011-09-22 23:33 test

执行这个shell脚本。

./test 失败 (-bash: ./test: Permission denied)。

sh test 成功。

sylecn
推荐于2016-01-17 · TA获得超过2991个赞
知道大有可为答主
回答量:1169
采纳率:57%
帮助的人:703万
展开全部
如果.不在PATH里面,要执行当前目录下的可执行文件,使用全路径:
./executable-file

如果要执行一个sh脚本,不管那个脚本有没有可执行权限,都可以使用:
sh [file]

这时file是作为参数传给sh的,如果file不在当前目录下,也需要使用全路径。

全路径有绝对路径和相对路径两种。./和../开头的都是相对路径,分别表示”在当前目录下”和”在父目录下”。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
caokaiqic17
2009-11-18 · TA获得超过411个赞
知道小有建树答主
回答量:308
采纳率:0%
帮助的人:248万
展开全部
楼上回答对的还是蛮好的
补充一点,PATH是环境变量,如果将当前目录“./”添加到环境变量中,那么也可以不用“./”,直接输入当前目录下有可执行权限的可执行文件就可以运行了。

参考资料: 自己

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式