请问巡检时跑脚本使用./和sh结果都一样吗?
./要有执行权限,sh直接执行,他们就这点区别? 没有其他不一样了吧,比如有些命令sh不支持等,请教大侠们 巡检时难道不是跑的./opt/SUNWexplo/bin/exploer 是其他的xxxxx.sh? 我的意思是说执行一个脚本文件,如test.sh用./test.sh 和sh test.sh有区别没有
回复 1# Fantasyling
这位同学这是浅浅的理解了!
其实这个要讲清楚,需要理解文件的属性和管理以及shell知识:
1. ./只是执行当前的文件,如果该文件没有执行权限,那么肯定不能执行文件里的脚本,那么chmod +x来改变文件执行权限,
更为重要一点的是,文件里面的#!行是否具有,如果有,后面就是执行的shell解释器,如果没有,请添加,否则文件里面的
脚本行(或者说所谓的命令)将以目前终端所在的shell来执行。
2. sh 只是表示使用b shell来执行文件里面的内容,所以存在一个问题就是,本来该文件不是以b shell语法写的那些脚本就会出错
或者返回无法预知的错误信息。
本帖最后由 winson_tse 于 2012-08-27 11:39 编辑
4楼说得很好,./ 去执行的脚本你要保证有可执行权限,没有权限的要先用chmod更改;sh xxx.sh 使用b shell来执行文件里面的内容,不需要更改这个权限,直接运行出结果。 wanglp2000 发表于 2012-08-27 11:21 static/image/common/back.gif
回复 1# Fantasyling
这位同学这是浅浅的理解了!
其实这个要讲清楚,需要理解文件的属性和管理以及shel ...
太强大了! 如果你执行sh调用的SHELL与脚本指定的SHELL一样的话,两者没有区别 谢谢指导。
页:
[1]