从 python 脚本导入 shell 变量
Import shell variables from python script
我在 shell 脚本中有一组常量,仅供其他项目通过采购引入,即:
. /home/test/constants.sh`
或
source /home/test/constants.sh`
我现在需要让 scons
脚本可以访问这些值。我认为实现一次编写随处使用的最简单方法是:
- 将 shell 脚本转换为 python 脚本,以便
scons
可以直接导入它。
- 让 python 脚本生成带有适当变量的 shell 脚本,或者可能让 shell 脚本 execute/source python 脚本生成导入必要的变量。
shell 脚本从 python 脚本到 "import" 变量(即 key/value 对)的最佳方法是什么? python 脚本是否应该简单地具有将 key/value 对转储为字符串的函数,或者是否有更复杂的方法来保持 shell 脚本和 python 脚本充满常量同步?
此外,在未来,简单的 GNU Makefile 项目也可能需要这些变量。 shell 脚本和 Makefile "import" 变量都可以来自外部 script/program?
Questions: ... both shell scripts and Makefiles "import" variables from an external script/program?
使用最小的常见可能性,具有 key=value
对的配置文件。
这可以在 Python Script 和 Shell Script
中使用。
Note: Use own Namespace MY_PROJECT_
not to overwrite used Environment Vars.
constants
MY_PROJECT_ROOT=/home/test/
用法Shell Script
:
. /home/test/constants
echo $MY_PROJECT_ROOT
>>>/home/test/
用法Python Script
:
启动脚本:
#!/bin/bash
. /home/test/constants
python my_python_script.py
my_python_script.py
:
print (os.environ['MY_PROJECT_ROOT'])
>>>/home/test/
您可以编辑 python
脚本并向其添加 . /home/test/constants
,以便始终为所有 Python 脚本设置环境变量。
其次,您可以将 . /home/test/constants
添加到您的 bash.rc
不需要 额外导入,但需要重新启动您的 Shell 如果 . /home/test/constants
变化。
我在 shell 脚本中有一组常量,仅供其他项目通过采购引入,即:
. /home/test/constants.sh`
或
source /home/test/constants.sh`
我现在需要让 scons
脚本可以访问这些值。我认为实现一次编写随处使用的最简单方法是:
- 将 shell 脚本转换为 python 脚本,以便
scons
可以直接导入它。 - 让 python 脚本生成带有适当变量的 shell 脚本,或者可能让 shell 脚本 execute/source python 脚本生成导入必要的变量。
shell 脚本从 python 脚本到 "import" 变量(即 key/value 对)的最佳方法是什么? python 脚本是否应该简单地具有将 key/value 对转储为字符串的函数,或者是否有更复杂的方法来保持 shell 脚本和 python 脚本充满常量同步?
此外,在未来,简单的 GNU Makefile 项目也可能需要这些变量。 shell 脚本和 Makefile "import" 变量都可以来自外部 script/program?
Questions: ... both shell scripts and Makefiles "import" variables from an external script/program?
使用最小的常见可能性,具有 key=value
对的配置文件。
这可以在 Python Script 和 Shell Script
中使用。
Note: Use own Namespace
MY_PROJECT_
not to overwrite used Environment Vars.
constants
MY_PROJECT_ROOT=/home/test/
用法Shell Script
:
. /home/test/constants
echo $MY_PROJECT_ROOT
>>>/home/test/
用法Python Script
:
启动脚本:
#!/bin/bash
. /home/test/constants
python my_python_script.py
my_python_script.py
:
print (os.environ['MY_PROJECT_ROOT'])
>>>/home/test/
您可以编辑 python
脚本并向其添加 . /home/test/constants
,以便始终为所有 Python 脚本设置环境变量。
其次,您可以将 . /home/test/constants
添加到您的 bash.rc
不需要 额外导入,但需要重新启动您的 Shell 如果 . /home/test/constants
变化。