当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 12 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 关于sh和./的问题
帖子发表于 : 2010-04-01 19:49 
头像

注册: 2009-10-29 14:12
帖子: 212
送出感谢: 0 次
接收感谢: 0 次
问题1:挂载的光盘后 查看install脚本 都有X权限,但用./执行后 却提示不被允许的权限- - 但是用sh却可以顺利执行,请大家指点一下为什么啊 :em06
问题2:bash sh ./ 在执行脚本的时候到底有什么区别呢 :em23


_________________
老虎不发猫,你当我是病危啊
我很菜但我很温柔


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 关于sh和./的问题
帖子发表于 : 2010-04-01 20:25 
头像

注册: 2009-03-10 13:04
帖子: 7807
送出感谢: 1
接收感谢: 0 次
sudo.........


_________________
广告位招租


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 关于sh和./的问题
帖子发表于 : 2010-04-01 21:15 

注册: 2008-05-14 18:53
帖子: 547
地址: 上海
送出感谢: 0 次
接收感谢: 0 次
bash是shell命令,sh是一个软连接,在redhat下默认指向到bash,ubuntu下默认指向到dash,./是执行当前目录下的程序


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 关于sh和./的问题
帖子发表于 : 2010-04-02 9:06 
头像

注册: 2009-10-29 14:12
帖子: 212
送出感谢: 0 次
接收感谢: 0 次
nuanhuai 写道:
sudo.........

- -我虽然菜鸟 但是还是喜欢root登录的- -
3楼说的我学习到了:)谢谢 但是还是有一点不解 为什么当前目录下执行 和用SH执行结果不一样呢 就是为什么./没权限 sh就有呢


_________________
老虎不发猫,你当我是病危啊
我很菜但我很温柔


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 关于sh和./的问题
帖子发表于 : 2010-04-02 9:10 
头像

注册: 2007-03-02 17:36
帖子: 7277
送出感谢: 3
接收感谢: 99
./只是个路径,表示当前目录。

./xxxx.sh 用默认shell执行当前目录下的xxxx.sh脚本。(可以用echo $SHELL查看默认的shell是什么。一般是bash)
sh ./xxxx.sh 用sh来执行当前目录下的xxxx.sh脚本,sh是个链接,ubuntu下默认链接到dash,也就是说,这句就是用dash 来执行当前目录下的xxxx.sh脚本。这里可以不写./,因为dash会自己去当前目录下找这个脚本。
bash ./xxxx.sh 指明用bash来执行当前目录下的xxxx.sh,这里也可以不写./,原因同上。


_________________
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 关于sh和./的问题
帖子发表于 : 2010-04-02 9:13 

注册: 2009-04-03 15:10
帖子: 1831
送出感谢: 0 次
接收感谢: 0 次
reaver 写道:
nuanhuai 写道:
sudo.........

- -我虽然菜鸟 但是还是喜欢root登录的- -
3楼说的我学习到了:)谢谢 但是还是有一点不解 为什么当前目录下执行 和用SH执行结果不一样呢 就是为什么./没权限 sh就有呢

在命令行下执行什么就是什么,严格区分。
$sh xxx.sh
表示你执行的是sh这个程序,这个程序有一个参数,就是xxx.sh这个脚本的文件名。
$./xxx.sh
表示你打算执行一个脚本,这个脚本叫做xxx.sh
前者表示你执行一个程序来解析这个脚本,后者表示你在直接执行这个脚本。
你用./xxx.sh没有执行权限是因为xxx.sh这个脚本没有被赋予执行权限。
chmod 700 xxx.sh
就可以了


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 关于sh和./的问题
帖子发表于 : 2010-04-02 9:14 

注册: 2008-05-14 18:53
帖子: 547
地址: 上海
送出感谢: 0 次
接收感谢: 0 次
reaver 写道:
nuanhuai 写道:
sudo.........

- -我虽然菜鸟 但是还是喜欢root登录的- -
3楼说的我学习到了:)谢谢 但是还是有一点不解 为什么当前目录下执行 和用SH执行结果不一样呢 就是为什么./没权限 sh就有呢

不知道你指的权限是什么,同一个用户下,使用./和sh的结果是一样的,但是./的方式需要该目录下的文件具有可执行权限,也就是chmo +x [filename]
sh或者bash则不需要,因为他们本身已经是一个具有可执行权限的程序,而且被当作解释器来解释你需要工作的脚本.


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 关于sh和./的问题
帖子发表于 : 2010-04-02 9:16 

注册: 2010-01-13 23:26
帖子: 3173
送出感谢: 0 次
接收感谢: 12
reaver 写道:
nuanhuai 写道:
sudo.........

- -我虽然菜鸟 但是还是喜欢root登录的- -
3楼说的我学习到了:)谢谢 但是还是有一点不解 为什么当前目录下执行 和用SH执行结果不一样呢 就是为什么./没权限 sh就有呢

菜鸟和root没有直接联系,但是如果不清楚自己是不是很有必要用root登录的话,就不要用root登录。


_________________
Here I am.
Ubuntu 桌面培训 - 全中文官方文档,含汉化截图,提供PDF


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 关于sh和./的问题
帖子发表于 : 2010-04-02 9:18 
头像

注册: 2009-10-29 14:12
帖子: 212
送出感谢: 0 次
接收感谢: 0 次
恩 这下又学习了 我想是不是这样 光盘被默认挂成了RO的形式 所以直接./就不行了 虽然X权限都有 而sh应该是提取了脚本的内容在当前shell下执行 不知道我理解对么 :em06


_________________
老虎不发猫,你当我是病危啊
我很菜但我很温柔


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 关于sh和./的问题
帖子发表于 : 2010-04-02 9:57 

注册: 2008-05-14 18:53
帖子: 547
地址: 上海
送出感谢: 0 次
接收感谢: 0 次
和ro还是rw没关系,你最好能够把问题脚本贴出来看看
./和sh在权限的问题上是一模一样的


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 关于sh和./的问题
帖子发表于 : 2010-04-02 11:18 

注册: 2010-01-01 16:39
帖子: 2
送出感谢: 0 次
接收感谢: 0 次
dshbusiness 写道:
reaver 写道:
nuanhuai 写道:
sudo.........

- -我虽然菜鸟 但是还是喜欢root登录的- -
3楼说的我学习到了:)谢谢 但是还是有一点不解 为什么当前目录下执行 和用SH执行结果不一样呢 就是为什么./没权限 sh就有呢

在命令行下执行什么就是什么,严格区分。
$sh xxx.sh
表示你执行的是sh这个程序,这个程序有一个参数,就是xxx.sh这个脚本的文件名。
$./xxx.sh
表示你打算执行一个脚本,这个脚本叫做xxx.sh
前者表示你执行一个程序来解析这个脚本,后者表示你在直接执行这个脚本。
你用./xxx.sh没有执行权限是因为xxx.sh这个脚本没有被赋予执行权限。
chmod 700 xxx.sh
就可以了


解释的非常清楚,学习了!


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 关于sh和./的问题
帖子发表于 : 2010-04-02 18:59 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
reaver 写道:
恩 这下又学习了 我想是不是这样 光盘被默认挂成了RO的形式 所以直接./就不行了 虽然X权限都有 而sh应该是提取了脚本的内容在当前shell下执行 不知道我理解对么 :em06


mount -l 看看
有 noexec 的话一样不行的


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 12 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:Google [Bot] 和 5 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译