我有一个脚本可以增加环境变量,但只有当我用“source”或“.”将其挂起时,它才能正常工作。不幸的是,这意味着如果我尝试将其绑定到某个键,我似乎无法使用“source”修饰符,因此环境变量实际上不会改变。
(假设 shell 环境中已经存在一个整数 TEST):
#!/bin/bash
let "TEST=$TEST+1"
echo $TEST
export TEST=$TEST
理想情况下,此脚本将增加测试变量,但(如果我理解正确的话)它仅在此脚本运行时产生的“子 shell”环境中这样做。是否可以以这种方式修改环境变量而不使用“source”?如果不行,我还能如何实现我的目标?我将不胜感激任何帮助,谢谢!
答案1
最简单的解决方案可能是将变量存储在文件中。
写入文件:
echo "13" > /path/to/my-variable.txt
将文件的第一行读入变量line
:
read -r line < /path/to/my-variable.txt
答案2
与关于使用 .txt 文件的答案类似,您可能可以使用简单的键值存储(如 redis 或 memcached(或 db,但这确实有点过头了))来执行某些操作。
$ sudo apt-get install redis-server redis-tools
$ redis-cli SET testing 5
OK
$ redis-cli GET testing
"5"