shell脚本里的命令加参数 参数 是从另一个文件中取得 怎么设置

test.sh如下
#!/bin/bash
usr/local/bin/ipmitest -I lanplus -H 10.18.32.80 -U root -P password -e sol active

arg_conf 如下
10.18.32.90 root password
10.18.32.100 admin admin
10.18.32.110 test password

脚本里的命令的 ip user pawword 从arg_conf 中获取 每一行 执行一次脚本

该怎么设置 麻烦大神 求助 感激涕零

用awk 可以很简单
#!/bin/bash
cat /xxx/arg_conf | while read LINE
do
eval $(echo $LINE | awk '{print "IP="$1";USER=$2";PWD="$3""}')
usr/local/bin/ipmitest -I lanplus -H $IP -U $USER -P $PWD -e sol active

done

[imG=http://my.csdn.net/index.php/follow/do_follow?jsonpcallback=jsonp1377838678175&username=ljl961890233bear&1=111.gif][/img]666

 cat /root/xxx/xxx/arg_conf | while read _line
    do
        if [ -z "${_line}" ]; then
            echo '--->empty line, ignored...'
            continue
        fi

        if [ "${_line:0:1}" == '#' ]; then
            echo "--->comment line, ignored..., ${_line}"
            continue
        fi

        #parse line
        _H="`echo $_line | cut -d , -f 1`"
        _U="`echo $_line | cut -d , -f 2`"
        _P="`echo $_line | cut -d , -f 3`"

        _sh="usr/local/bin/ipmitest -I lanplus -H ${_H} -U ${_U} -P ${_P} -e sol active"
        echo "--->${_sh}"

        #execute sh command
        `${_sh}`
    done

请用英文逗号分隔每一行的每一列

#!/bin/bash
while read ip user password
do
usr/local/bin/ipmitest -I lanplus -H $ip -U $user -P $password -e sol active
done < "arg_conf"

直接用awk就可以了,没有必要是bash+awk的混合体。

例如
printf "1 2 3\n4 5 6\n" | awk '{ cmd="echo -H " $1 " -U " $2 " -P " $3 ; print cmd; system(cmd); }'

把cmd替换成你的命令就可以了。

awk sed配合使用,效果很nice

直接用变量+上awk提取出来就对了。上面的大神都已经写出来了。可以借鉴下。