从 bash 脚本更改常见项目库值

从 bash 脚本更改常见项目库值

我有一个项目,其中包含一个用于变量的通用 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

现在,如果该文件中有多个变量,这将带来问题。您需要先获取每个变量,然后构建所有新值并将它们添加到文件中。有很多方法可以做到这一点,您可以研究它或想出自己的方法。

相关内容