免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 5047 | 回复: 22
打印 上一主题 下一主题

bash和sh的不同点?高手指点指点下吧 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-04-18 15:01 |只看该作者 |倒序浏览
本帖最后由 想…… 于 2012-04-18 15:13 编辑

我用的系统是 fedora14, sh是链接到bash的,但是写shell时遇到问题了,

test.sh
  1 #!/bin/sh
  2 source pcy.sh
  3 echo hello
         

运行的时候会提示:
./test.sh: line 2: source: pcy.sh: file not found
hello

也就是说我用 sh 时 执行source总是会提示我找不到文件!用 . 和用source都是一样的结果!
大家有没有人遇到过这种情况的?

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
2 [报告]
发表于 2012-04-18 15:05 |只看该作者
你的pcy.sh文件没创建呢吧

论坛徽章:
0
3 [报告]
发表于 2012-04-18 15:14 |只看该作者
我的当前目录下是有pcy.sh文件的。把  1 #!/bin/sh 改为 #!/bin/bash后运行就正常

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
4 [报告]
发表于 2012-04-18 15:20 |只看该作者
[chenyx@5250 ~]$ cat test.sh
#!/bin/sh
source pcy.sh
echo 'hello'
[chenyx@5250 ~]$ ll /bin/sh
lrwxrwxrwx 1 root root 4 2010-04-06 /bin/sh -> bash
[chenyx@5250 ~]$ ./test.sh
hello world
hello
[chenyx@5250 ~]$ cat pcy.sh
echo 'hello world'

我这正常,sh就是bash的连接啊,你看下你的系统

论坛徽章:
0
5 [报告]
发表于 2012-04-18 15:24 |只看该作者
本帖最后由 想…… 于 2012-04-18 15:25 编辑

当 test.sh文件是这样的时候,
  1 #!/bin/bash
  2
  3 . pcy.sh
  4 echo hello
而当前目录没有 pcy.sh时
./test.sh: line 3: pcy.sh: No such file or directory
hello

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
6 [报告]
发表于 2012-04-18 15:26 |只看该作者
你的pcy.sh写成绝对路径测试下

论坛徽章:
0
7 [报告]
发表于 2012-04-18 15:33 |只看该作者
你的是什么系统?
我的是2.6.35.6-45.fc14.x86_64
难道是我下去的系统有问题?

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
8 [报告]
发表于 2012-04-18 15:34 |只看该作者
我的是centos 5.5

论坛徽章:
0
9 [报告]
发表于 2012-04-18 15:38 |只看该作者
写成绝对路径是可以的。
应该是bash默认的选项改变了
有办法让sh和bash一样么?用相对路径?

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
10 [报告]
发表于 2012-04-18 15:39 |只看该作者
你在终端窗口输入
  1. ll /bin/sh
复制代码
看下sh是不是bash的软连接.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP