【问题标题】:can seem to export environment variable from bash script似乎可以从 bash 脚本中导出环境变量
【发布时间】:2012-10-26 02:06:58
【问题描述】:

我正在通过 putty 在远程服务器上工作,并试图通过类似这样的方式设置某些环境变量

#!/bin/bash
VAR="SOME VALUE"
export $VAR

当我退出脚本并在 $VAR 上运行 echo 时,我得到一个空行。你能建议一个解决这个问题的方法吗?

【问题讨论】:

    标签: bash environment-variables variable-assignment


    【解决方案1】:

    首先您需要导出 VAR,而不是 $VAR。

    另外,我认为,你正试图从你的 shell 中执行脚本

    ./initVars.sh # or whatever is your script name...
    

    你应该把它作为来源

    source ./initVars.sh # OR
    . ./initVars.sh # Note the leading '.' which serves as short-hand for source.
    

    你可以把它放在你的 .bashrc 中。

    【讨论】:

    • 你能告诉我如何在 Windows 批处理文件中做同样的事情
    • 对于批处理文件,我认为您可以简单地从父文件中调用 .bat 文件,如“initVars.bat”。确保它没有任何退出语句。另外,要设置一个var,你需要使用命令“set”,比如set VAR="SOME VALUE"
    【解决方案2】:

    两个问题。首先,它只是export VAR。其次,$VAR 仅对您的脚本和子进程可用,而对父 shell 不可用。如果你想为那个 shell 设置 $VAR,你可以像 . ./yourscript.sh 这样从 shell 获取它。

    【讨论】:

      【解决方案3】:

      应该是

      export VAR
      

      请注意缺少美元符号。

      【讨论】:

      • 你在运行 bash 吗?试试这个:echo $0 在命令提示符下。如果您没有看到bashsh,那么它将不起作用。
      • @HaiVu 由于 anishane 的回答中的原因,它不起作用。 export 是 POSIX,所以它也应该在 sh 中工作。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-24
      • 2022-01-17
      • 2017-12-25
      • 2021-07-11
      • 2013-05-13
      • 1970-01-01
      • 2018-04-13
      相关资源
      最近更新 更多