別のディレクトリにあるファイルの 5 つの変数値をチェックし、それに応じて更新する bash スクリプトを作成しようとしています。変数が5つあるので、forループでやろうと思っていたのですが、これらの値を比較する方法がわかりません。私が欲しいのは疑似コードです:
var_f=(server_name app_name metadata1 metadata2 metadata) #the variable name in file
var_v=(server1 app /tmp/2 tmp/3 /tmp/config.xml
for i in "${var_f[@]}"
do
if var_f(i)~=var_v(i)
sed -i -e 's/server_name=RANDOM_VAL/server_name=server1/g' server.properties
else
then do nothing
fi
done
私がこれまでに持っているコード:
#!/bin/bash
cd '/home/me/'
set -- $(<server.properties)
echo $server_name # jsut to see if set command is working
sed -i -e 's@server_name=@server_name=server1@g' server.properties
sed -i -e 's@app_name=@app_name=app@g' server.properties
sed -i -e 's@metadata1=@metadata1=/tmp/2@g' server.properties
sed -i -e 's@meatadata2=@metadata2=/tmp/3@g server.properties
sed -i -e 's@metadata=@metadata=/config.xml@g' server.properties
cd '/home/my/test/'
var_f と var_v を実行して 2 つを比較するにはどうすればよいですか? ファイルの var_f の値は --set コマンドを使用して取得できますが、それを正しい値 (var_v) と比較する方法がわかりません。また、var_v は、for ループと if ステートメントを使用して間違った値を置き換える正しい値です。
どんな助けでも大歓迎です。ありがとうございました。