2016-07-08 1 views
1

私は設定情報とそのファイルを読み込むシェルスクリプトを含むファイルを持っています。私は値をbashスクリプトに渡したい。値の配列またはgrepにファイルコンテンツを変換

file.txtを

varNumber=1.1.1 
varName=testThis 
varFile=~/myDir/mySubDir/output.zip 

myShellScript.sh

FILENAME="~/myDir/mySubDir/output.zip" <- this is what I expect from grep/awk 
startNextScript.sh -f $FILENAME 

私は連想配列として、またはいずれかの変数を抽出したいと思います - より簡単であれば - 彼らのためにgrepを、 しかし、私はこのようなコマンドをbashで書くのに慣れていないので、私は助けを求めています!

+0

は、私が聞いても、あなたがその設定ファイルをソースにしたくない理由は? –

+0

はい、そうかもしれませんが、おそらくあなたに良い答えを与えることはできません...ファイルの読み込み/変換と変数とソーシングの違いは何ですか? – littleturtle

+0

'file.txt'にはすでに変数の割り当てが含まれています。あなたのスクリプトで 'source file.txt'を使うと、それらの変数はあなたのスクリプトで利用できるようになります。 –

答えて

1

bashで連想配列を使用:

#!/bin/bash 
declare -A vars 
while read -r line ; do 
    var=${line%%=*}  # Remove everything after the first =. 
    value=${line#*=} # Remove everything before the first =. 
    vars[$var]=$value 
done < file.txt 

echo Number: ${vars[varNumber]} 
echo Name: ${vars[varName]} 
echo File: ${vars[varFile]} 
+0

これは完全に機能します!ありがとうございました! – littleturtle

関連する問題