当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 9 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [讨论]shell 内部命令 "." and "exec"
帖子发表于 : 2006-06-23 16:41 

注册: 2006-04-03 18:28
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
如题
这两个命令都无法运行shell脚本,谁能给解释一下,是不是ubuntu除去了这两个命令?


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2006-06-23 16:45 

注册: 2006-04-03 18:28
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
在/usr/bin下确实没"exec".


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2006-06-24 13:30 
头像

注册: 2006-06-01 22:45
帖子: 439
地址: Fujian
送出感谢: 0 次
接收感谢: 0 次
./command可以的,你的那个脚本放在哪个分区,和这个可能也有关系的
你把脚本放到/bin下执行下看看


_________________
被时间羁绊,被邪恶包围……空气稀薄


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2006-06-24 17:46 
头像

注册: 2005-08-15 0:04
帖子: 1880
地址: 南7技校
送出感谢: 0 次
接收感谢: 0 次
我用 . 运行过一些的,呵呵,好象还有一些不行。不知道为什么
用 sh ***不就没有问题了么?


_________________
飞得高,飞得低,学习再学习,多少大秘密!
http://zhan.blog.ubuntu.org.cn


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2006-06-25 10:56 

注册: 2006-04-03 18:28
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
多谢两位回复。
./command 和 sh 都能执行,我在一本参考书上看到有4种方法来运行shell脚本,但"."和"exec"不行,前面那两个可以,不知道为什么?


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2006-06-25 13:00 
头像

注册: 2005-05-19 18:38
帖子: 1991
地址: 湖南永州
送出感谢: 0 次
接收感谢: 1
ubuntu并没有除去了这两个命令

这两个常见于脚本中

代码:
   .            /脚本文件


是导入脚本文件的函数,或运行脚本,(只能用于脚本)

代码:
  exec   /程序


是在子进程中运行程序。


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2006-10-15 17:35 

注册: 2006-06-03 13:55
帖子: 21
送出感谢: 0 次
接收感谢: 0 次
kadox 写道:
多谢两位回复。
./command 和 sh 都能执行,我在一本参考书上看到有4种方法来运行shell脚本,但"."和"exec"不行,前面那两个可以,不知道为什么?


. file #在当前shell下执行程序,即不产生子shell执行程序。
exec command #该命令不像其他命令那样以一个新进程运行,而是用command代替当前进程。试试"/bin/sh"以及"exec /bin/sh"。再看看进程表


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2006-10-27 11:32 

注册: 2006-02-28 15:44
帖子: 80
送出感谢: 0 次
接收感谢: 0 次
估计楼主还没有注意空格问题,其实 . 仅仅是把一段脚本文件引入到当前文件中一起执行,这种方法可以在引入的脚本文件不具有执行权限时仍然执行脚本内容。


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2006-11-06 10:46 

注册: 2006-11-06 10:25
帖子: 8
送出感谢: 0 次
接收感谢: 0 次
这二个是bash标准的内嵌脚本命令外部无法调用的

就像楼上所说的 . 是用来引入文件的
就像 bashrc 文件里,或者有些系统脚本里的 . XXX
就是说这里为了引入一段脚本

而我们平常用的 . 其实并不是命令, 而是指路径
./command 执行当前目录下的command命令

由于默认路径中是不可能包含当前路径的(除非你的$PWD在$PATH中)
否则当你输入 command 时, Bash则会在 $PATH 中查找是否则能够找到 command
当找不到的时候就不执行 而 ./command 的作用就是声明command在当前路径下

至于exec 我印象中 我只在IO重定向的时候用过...


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

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


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

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

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