【问题标题】:Shell command to get config values获取配置值的 Shell 命令
【发布时间】:2011-12-04 15:25:41
【问题描述】:

我在 Mac Os X 中使用 sh 3.2。我有一个文件 test.conf

config1="Configuration 1"
config2="a lot of text"
config3=...

所以我只需要获取config1=config2= 参数。我怎样才能设置一个变量,我可以这样做:

> echo $variable
Configuration 1

这么简单,但我没有做。

【问题讨论】:

    标签: shell command-line command sh


    【解决方案1】:

    您要查找的命令是source

    source test.conf
    echo $config1        #echoes Configuration 1
    

    如果您需要在变量中包含 config1,请添加

    varible=$config1
    

    【讨论】:

    • 如果变量中有空格仍然不起作用。这个问题要求有选择地选择 test.conf 中的一些变量。
    【解决方案2】:

    你可以这样做:

    variable=`sed -n 's/^config1=//p'`
    

    或者,如果您正在尝试评估文件的某些部分,请尝试类似

    eval `grep ^config1= test.conf`
    

    config1=Configuration 1 由当前shell 评估。 (对于您提供的示例,这将导致语法错误,因为该值不能包含未加引号的空格。)

    我一般建议初学者远离反引号,但这是一个很好的答案。

    【讨论】:

      【解决方案3】:

      粗略的猜测......

      export `grep 'config1=' /your/config/file`
      export `grep 'config2=' /your/config/file`
      

      但是请记住,如果您将它放在一个 shell 脚本文件中,那么您将需要评估该文件而不是执行它来设置当前 shell 实例中的变量。

      【讨论】:

      • 工作,但需要一个变量。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-09
      • 2015-03-31
      • 2011-11-26
      • 1970-01-01
      • 1970-01-01
      • 2011-01-21
      相关资源
      最近更新 更多