我正在尝试编写一个 bash 脚本,该脚本将检查不同目录中文件中的五个变量值并相应地更新它们。由于有五个变量,我想在 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 并比较两者?文件中 var_f 的值可使用 --set 命令获得,但我不知道如何将其与正确值 (var_v) 进行比较。此外, var_v 是正确的值,将使用 for 循环和 if 语句替换错误的值。
任何帮助将不胜感激。谢谢你。