shell脚本:如何在for循环中传递2个参数?

时间:2015-12-11 22:14:37

标签: bash shell

我正在创建一个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.

请协助

1 个答案:

答案 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