![从 bash 脚本更改常见项目库值](https://linux22.com/image/1601195/%E4%BB%8E%20bash%20%E8%84%9A%E6%9C%AC%E6%9B%B4%E6%94%B9%E5%B8%B8%E8%A7%81%E9%A1%B9%E7%9B%AE%E5%BA%93%E5%80%BC.png)
我有一个项目,其中包含一个用于变量的通用 bash 文件。有没有办法通过脚本来更改这些变量?
示例操作脚本:
$ cat sampleaction.sh
#!/bin/bash
# Source variables
. commonlibrary
# Do action according to mode
case $MODE in
idle)
#do nothing
active)
#do something
$MODE
存在于一个公共文件中,并且仅在启动每个单独的操作脚本时进行检查。如果此变量包含一个标志,我希望由安装 bash 脚本设置此变量,例如--active
。
安装脚本:
cat initaction.sh
#!/bin/bash
# Source variables
. commonlibrary
# Check flags
while [ $# -gt 0 ]
do
case $1 in
--active)
shift;
MODE=active;;
esac
done
答案1
您可以通过将新值回显到该文件中来更改公共文件中的变量:
echo "MODE=active" > commonlibrary
您的代码示例:
#!/bin/bash
. commonlibrary
case $MODE in
idle)
#do nothing
active)
echo "MODE=newmode" > commonlibrary
现在,如果该文件中有多个变量,这将带来问题。您需要先获取每个变量,然后构建所有新值并将它们添加到文件中。有很多方法可以做到这一点,您可以研究它或想出自己的方法。