Fantasyling 发表于 2012-08-22 19:33

请问巡检时跑脚本使用./和sh结果都一样吗?

./要有执行权限,sh直接执行,他们就这点区别? 没有其他不一样了吧,比如有些命令sh不支持等,请教大侠们

hzg1103 发表于 2012-08-23 00:20

巡检时难道不是跑的./opt/SUNWexplo/bin/exploer    是其他的xxxxx.sh?

Fantasyling 发表于 2012-08-23 19:50

我的意思是说执行一个脚本文件,如test.sh
用./test.sh 和sh test.sh有区别没有


   

wanglp2000 发表于 2012-08-27 11:21

回复 1# Fantasyling
这位同学这是浅浅的理解了!
其实这个要讲清楚,需要理解文件的属性和管理以及shell知识:
1. ./只是执行当前的文件,如果该文件没有执行权限,那么肯定不能执行文件里的脚本,那么chmod +x来改变文件执行权限,
   更为重要一点的是,文件里面的#!行是否具有,如果有,后面就是执行的shell解释器,如果没有,请添加,否则文件里面的
   脚本行(或者说所谓的命令)将以目前终端所在的shell来执行。
2. sh 只是表示使用b shell来执行文件里面的内容,所以存在一个问题就是,本来该文件不是以b shell语法写的那些脚本就会出错
   或者返回无法预知的错误信息。




   

winson_tse 发表于 2012-08-27 11:39

本帖最后由 winson_tse 于 2012-08-27 11:39 编辑

4楼说得很好,./ 去执行的脚本你要保证有可执行权限,没有权限的要先用chmod更改;sh xxx.sh 使用b shell来执行文件里面的内容,不需要更改这个权限,直接运行出结果。

柯雅 发表于 2012-08-27 11:48

wanglp2000 发表于 2012-08-27 11:21 static/image/common/back.gif
回复 1# Fantasyling
这位同学这是浅浅的理解了!
其实这个要讲清楚,需要理解文件的属性和管理以及shel ...

太强大了!

山野村夫 发表于 2012-08-27 13:03

如果你执行sh调用的SHELL与脚本指定的SHELL一样的话,两者没有区别

Fantasyling 发表于 2012-08-27 22:25

谢谢指导。


   
页: [1]
查看完整版本: 请问巡检时跑脚本使用./和sh结果都一样吗?