【问题标题】:Shell script problem to set my env设置我的环境的 Shell 脚本问题
【发布时间】:2010-10-27 08:03:23
【问题描述】:

我们很少有可执行文件需要一些环境设置。 我们在运行可执行文件之前手动运行这些脚本

喜欢

$ . setenv.ksh

我们必须将这些调用包含在一个脚本中以避免手动工作。 我们写了一个像

这样的sh脚本
#!/bin/sh

. setenv.ksh

./abc &

仍然没有在该会话中设置环境。我觉得 ”。 setenv.ksh” 使用 fork 运行,它没有设置环境。

请我解决这个问题。我们使用哪个命令来运行 setenv.ksh,这样就可以正常工作了。

谢谢

【问题讨论】:

  • 您能否发布setenv.ksh 的内容,或者至少是其中显示问题的一部分?并尝试证明问题,例如将./abc 替换为env | grep foo,其中foo 是一个变量,应该由setenv.ksh 设置,但不是。

标签: shell environment-variables unix


【解决方案1】:

我注意到环境脚本名为setenv.ksh,但您尝试从/bin/sh 运行它。也许你的系统有一个不是 ksh 的 shell /bin/sh 并且它错误地解析了它 setenv.ksh 的东西。尝试将 shebang 行更改为 #!/bin/ksh(或系统上的任何 ksh 路径)。

【讨论】:

    【解决方案2】:

    在setenv.ksh中,你需要导出你设置的所有环境变量,这样任何子shell都会继承这些值:

    export MYENV=myValue
    

    【讨论】:

    • Setenv.ksh 是第三方文件。我们不能编辑它,否则在安装的系统上会遇到问题。
    猜你喜欢
    • 1970-01-01
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多