我正在创建一个shell脚本,我需要在for循环中传递两个参数(比如hash标签)。对于前(键值)这里我将“value”参数与某个值进行比较,并在此基础上对“key”参数执行某些操作。
像:
for i in $(echo `awk '{print $0}' ab4`); or for i in $(cat ab4);
do if [ "`awk -F":" '{print $2}' $i`" = "`some value`" ];
then echo "go ahead and restart app service on `awk '{print $1}' $i`";
{这里我将使用该命令重启服务,但为此我需要这个$ 1这是一个主机名}
else echo "2nd condition here";
fi;
done.
ab4的内容如下:
hostname app.rpmversion
当我运行此操作时,收到错误:"key" "value" in ab4 parameters are not a command.
请协助
答案 0 :(得分:2)
您可以使用read
内置功能:
while read -r key val; do
printf "Processing key=%s, value=%s\n" "$key" "$val"
done < ab4
<强>输出:强>
Processing key=hostname, value=app.rpmversion