我在shell脚本中有一组常量,这些常量仅供其他项目通过源代码提供,即:
. /home/test/constants.sh`
或
source /home/test/constants.sh`
我现在需要使scons
脚本可以访问这些值。我认为最简单的写作方式 - 一次性使用 - 到处都是:
scons
可以直接导入它。shell脚本从python脚本“导入”变量(即键/值对)的最佳方法是什么? python脚本是否应该只有一个将键/值对转储为字符串的函数,或者是否有更复杂的方法来保持shell脚本和python脚本充满常量的同步?
此外,将来,简单的GNU Makefile项目也可能需要这些变量。 shell脚本和Makefile是否可以从外部脚本/程序“导入”变量?
答案 0 :(得分:1)
问题:... shell脚本和Makefile"导入"来自外部脚本/程序的变量?
使用最小的常见可能性,配置文件key=value
对
这可以从 Python脚本和Shell Script
中使用。
注意:使用自己的命名空间
MY_PROJECT_
不要覆盖使用过的环境变量。
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
否其他需要导入,但如果. /home/test/constants
发生更改,则需要重启您的Shell。