分页: 1 / 2
[问题]为什么$SHELL与所用的sh不一致呢?
发表于 : 2007-05-14 22:39
由 cyberx
用env命令看到:
SHELL=/bin/bash
但是ls -l /bin/sh发现:
/bin/sh -> /bin/dash
为什么会不一致呢?是出问题了还是有什么意义?
系统是 xubuntu 7.04
发表于 : 2007-05-14 22:42
由 eexpress
用户属性里面看看
发表于 : 2007-05-14 22:42
由 BigSnake.NET
有什么问题..两者根本完全无关
发表于 : 2007-05-14 22:45
由 xport
查看目前使用那个 shell :
你可以检查配置文件:
代码: 全选
shell> fgrep `whoami` /etc/passwd | awk -F":" '{printf $7}'
发表于 : 2007-05-14 22:45
由 iblicf
BigSnake.NET 写了:有什么问题..两者根本完全无关
发表于 : 2007-05-14 22:52
由 ziyun
我曾听用其他系统的人说/bin/sh是/bin/bash的一个链接,但在ubuntu上不是
发表于 : 2007-05-14 22:57
由 xport
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
发表于 : 2007-05-15 11:01
由 oldniu
好像是6.10开始/bin/sh指向了/bin/dash。功能上更安全也更局限。所以有些shell script 一定要特别指明用/bin/bash yourshellscript
才能正确执行。
发表于 : 2007-05-15 18:36
由 cyberx
BigSnake.NET 写了:有什么问题..两者根本完全无关
那为什么会有个$SHELL呢?是干啥呢?用的是dash,但是$SHELL说是bash会不会出问题?
发表于 : 2007-05-15 18:39
由 BigSnake.NET
cyberx 写了:BigSnake.NET 写了:有什么问题..两者根本完全无关
那为什么会有个$SHELL呢?是干啥呢?用的是dash,但是$SHELL说是bash会不会出问题?
$SHELL 就是你现在用的shell
sh指向dash与此无关
发表于 : 2007-05-15 18:41
由 BigSnake.NET
oldniu 写了:好像是6.10开始/bin/sh指向了/bin/dash。功能上更安全也更局限。所以有些shell script 一定要特别指明用/bin/bash yourshellscript
才能正确执行。
安装bash..卸掉dash就可以了,注意同时调整你的shell
发表于 : 2007-05-15 19:51
由 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
发表于 : 2007-05-15 19:53
由 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没有这些功能,所以就不行了
发表于 : 2007-05-15 19:57
由 xport
写shell的人没有注意兼容性,现在不是都在向POSIX看齐了么?
发表于 : 2007-05-15 20:14
由 cyberx
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里不是一个东西了,那么这个变量到底是干啥用的乜?与实际不符会不会出问题?