【问题标题】:Command Return as Variable命令返回变量
【发布时间】:2013-09-15 21:31:27
【问题描述】:

我在尝试从外部文件获取变量值时遇到问题。 我的问题是:是否可以从 for 中的文件中读取值,然后使用 cut 命令我可以获得 = 之前的信息,这将是变量,在 = 之后是值。这是我在下面尝试的,但这是不允许的:

for i in `cat $1`
do
    `echo $i | cut -d= -f1`=`echo $i | cut -d= -f2`
done

$1 是作为参数传递的文件,它有 3 行,其中有一个变量和格式为 variable=value 的值。 有没有办法我可以做到这一点,而不是需要获取变量名,然后再获取这些变量值的另一个条件?或者即使我的代码是正确的,但只需要更改一些内容。

【问题讨论】:

    标签: file shell unix for-loop variable-assignment


    【解决方案1】:

    试试:

    source $1
    

    示例:

    $ cat file.txt 
    var1=123
    var2=234
    
    $ cat my.sh 
    #!/bin/bash
    source $1
    echo $var1
    
    $ ./my.sh file.txt 
    123
    

    如果“for”循环对你很重要,则使用“let”。

    for i in `cat $1`
    do
        let `echo $i | cut -d= -f1`=`echo $i | cut -d= -f2`
    done
    

    【讨论】:

      【解决方案2】:

      你可以通过这个简单地做到这一点:

      while read -r LINE; do
          echo "${LINE#*=}"  ## Delete all values before and including = then, echo it.
      done < "$1"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-09
        • 2016-05-21
        • 1970-01-01
        • 2019-09-16
        • 2019-09-03
        相关资源
        最近更新 更多