【问题标题】:Shell Script to read value set to zero and set back to old value?Shell脚本读取设置为零的值并设置回旧值?
【发布时间】:2013-03-25 12:24:17
【问题描述】:

我需要读取变量的值并将其设置为零,然后再次设置回旧值 我尝试了这些步骤

value=$(grep -Po '(?<=Max_value=).*' /usr/post_check.ini|awk '{print $1}')
sed -i -r 's/Max_value=[0-9]+/Max_value=0/g' /usr/master.ini
echo "$value" # say $value is 3
sed -i -r 's/Max_value=[0-9]+/Max_value=$value/g' /usr/master.ini
value=$(grep -Po '(?<=Max_value=).*' /usr/master.ini|awk '{print $1}')
echo "$value"

上面的代码将值 Max_value 设置为 $value[我的意思是实际到文本 $value 但不包含它的值,它是 3,如 "Max_value=$value" 而不是 Max_value=3] 但不是旧值

如果我将其重置为零并尝试将其设置回旧值,我该怎么做?

【问题讨论】:

    标签: shell configuration-files ini


    【解决方案1】:

    直接插入 $value 的特殊问题是因为您使用了单引号而不是双引号。

    不过我推荐使用 crudini 这是一个从shell操作ini文件的专用工具

    value=$(crudini --get /usr/post_check.ini section Max_value)
    crudini --set /usr/post_check.ini section Max_value 0
    echo "$value"
    crudini --set /usr/post_check.ini section Max_value "$value"
    value=$(crudini --get /usr/post_check.ini section Max_value)
    echo "$value"
    

    使用详情及下载地址: http://www.pixelbeat.org/programs/crudini/

    【讨论】:

      【解决方案2】:

      sed -i -r "s/Max_value=[0-9]+/Max_value=$value/g" /usr/master.ini

      【讨论】:

        【解决方案3】:

        就像我在回答您上一个 question 时所说,您应该使用配置解析器:

        import ConfigParser
        
        config = ConfigParser.ConfigParser()
        config.read('post_check.ini')
        
        print config.get('section 1','Max_value')
        
        config.set('section 1','Max_value','0')
        print config.get('section 1','Max_value')
        

        演示

        $ cat post_check.ini
        [section 1]
        Max_value=123
        [section 2]
        Max_value=456
        
        $ python config.py
        123
        0 
        

        【讨论】:

        • 相关性是什么?你不需要 X 服务器!
        • 这就是我运行脚本时遇到的错误
        • 您是如何尝试运行脚本的?
        • 我正在做一个 shell 脚本,这只是 shell 脚本的一部分,我现在不能把整个东西都改成 python
        • 您发布的代码完全是一团糟,您不必重写整个脚本(尽管在这种情况下您可能应该)您只需添加一行@ 987654324@。显然,您不能将 python 代码复制并粘贴到 shell 脚本中并期望它能够工作。
        猜你喜欢
        • 2014-06-15
        • 2020-05-07
        • 2014-07-13
        • 2016-10-08
        • 2015-07-25
        • 2018-08-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多