No command 'setenv' found

zz : http://blog.csdn.net/qtyl1988/article/details/8096097

今天又遇到一个能够充分证明自己是菜鸟的问题。

    我要在ubuntu12.04下编译安装OpenInventor。阅读OpenInventor官方提供的说明README.FIRST,里面用到了一个命令:setenv。我在终端下敲setenv,提示

No command 'setenv' found, did you mean:
 Command 'netenv' from package 'netenv' (universe)

    久思不得其解。上网 查一下,才知是因为shell版本问题。首先大致了解一下shell各个版本的差异,贴一段从snowdrop新浪博客copy过来的常识:

Bourne Shell(即sh)是UNIX最初使用的shell,平且在每种UNIX上都可以使用。BourneShell在shell编程方便相当优秀,但在处理与用户的交互方便作得不如其他几种shell。
LinuxOS默认的是Bourne Again Shell,它是Bourne Shell的扩展,简称bash,与BourneShell完全兼容,并且在BourneShell的基础上增加,增强了很多特性。可以提供命令补全,命令编辑和命令历史等功能。它还包含了很多C Shell和KornShell中的优点,有灵活和强大的编辑接口,同时又很友好的用户界面

C Shell是一种比Bourne Shell更适合的变种Shell,它的语法与C语言很相似。Linux为喜欢使用CShell的人提供了Tcsh。
Tcsh是CShell的一个扩展版本。Tcsh包括命令行编辑,可编程单词补全,拼写校正,历史命令替换,作业控制和类似C语言的语法,他不仅和BashShell提示符兼容,而且还提供比Bash Shell更多的提示符参数。

Korn Shell集合了C Shell和Bourne Shell的优点并且和BourneShell完全兼容。Linux系统提供了pdksh(ksh的扩展),它支持人物控制,可以在命令行上挂起,后台执行,唤醒或终止程序。

Linux还包括了一些流行的Shell如:ash,zsh等。每个Shell都有它的用途,有些Shell是有专利的,有些能从Internet或其他来源获得。
   
一旦当你知道了原来shell还有版本之差,setenv的错误就容易解释了。
    setenv/unsetenv是用于csh的命令,在ubuntu终端模拟器默认的bash下面解释不了。但是,bash下有与它们对应的命令,即export和unset。具体对应关系如下(参考了这里的解释http://www.cygwin.com/ml/cygwin/2001-02/msg00437.html):
CSH:  setenv name value
BASH: export name=value
 
 CSH:  unsetenv name
 BASH: unset name

    ok,这个问题 就这么解决了。我实在不想再当菜鸟了,任重道远。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值