【问题标题】:Why 'script' utility require SHELL under Cygwin (and work fine under Linux)?为什么'脚本'实用程序在 Cygwin 下需要 SHELL(并且在 Linux 下工作正常)?
【发布时间】:2011-12-07 15:05:45
【问题描述】:

看看我的会话:

givenko+bash# 回声 $SHELL /bin/bash givenko+bash# 脚本 脚本启动,文件 - 打字稿 sh-4.1$ ^C sh-4.1$ 退出 脚本启动,文件 - 打字稿 givenko+bash# SHELL=/bin/bash 脚本 脚本启动,文件 - 打字稿 givenko+bash# ^C givenko+bash# 退出 脚本启动,文件 - 打字稿 givenko+bash# 导出 SHELL givenko+bash# 脚本 脚本启动,文件 - 打字稿 givenko+bash# ^C givenko+bash# 退出

如您所见,第一次脚本不使用 SHELL,第二次使用它 第三次使用它。

所以 SHELL env var 不会被 bash 导出...

为什么?

这是正确的添加

出口壳牌

到'~/.bashrc'?

【问题讨论】:

  • 提示:因为我们大多数人不会说俄语,所以下次在为 SO 截屏之前考虑export LANG=C :)
  • @sehe 对不起...我认为这部分不是那么重要。你做得很好!
  • 似乎更适合 superuser.com。

标签: bash shell


【解决方案1】:

查看我的问题的答案:http://cygwin.com/ml/cygwin/2011-10/msg00269.html

这是 bash 中的一个错误,它隐藏了损坏的行为 在操作系统中。 Bash 期望这是一个现有的环境变量, 它通常在普通的 Unix 之类的操作系统中。 但是,bash 在内部设置变量,如果它是 丢失(不导出): `外壳' shell 的完整路径名保存在此环境中 多变的。如果在 shell 启动时没有设置,Bash 分配给 它是当前用户登录 shell 的完整路径名。 不导出变量是正确的。 Bash 可能不是 用户的shell,所以它无权自我介绍为 SHELL 到子进程。

【讨论】:

    猜你喜欢
    • 2011-09-11
    • 1970-01-01
    • 2017-03-08
    • 1970-01-01
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    相关资源
    最近更新 更多