0

外部ファイルから変数値を取得しようとすると問題が発生します。私の質問は次のとおりです。ファイルから値を for で読み取り、cut コマンドを使用して、変数になる = の前と値になる = の後に情報を取得できますか。これは私が以下で試したことですが、許可されていません:

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

$1 は、パラメーターとして渡されたファイルで、変数が含まれる 3 行とvariable=value形式の値が含まれるファイルです。変数名を取得してから、これらの変数の値の条件を取得する代わりに、これを行う方法はありますか? または、コードが正しい場合でも、何かを変更する必要があるだけです。

4

2 に答える 2

5

試す:

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
于 2013-09-11T18:21:18.207 に答える
0

これを介して簡単に行うことができます:

while read -r LINE; do
    echo "${LINE#*=}"  ## Delete all values before and including = then, echo it.
done < "$1"
于 2013-09-11T18:31:12.450 に答える