我的脚本接受键值对作为命令行参数.我测试给定数量的参数是否均匀.如果是偶数,我想迭代数组,考虑args[n]&args[n+1]作为一对(n = 0 to $# - 1)并执行另一个命令,将这两个作为参数.我无法获得for循环.这是我的代码 -
#!/bin/sh
usage() {
echo "$0 <property-name> <property-value> [<property-name> <property-value> ...]"
exit 1
}
if [ $# -lt 2 ] ; then
usage
fi
# Should be even number of arguments
if [ $(( $# % 2 )) -ne 0 ]
echo "Even number of arguments expected."
usage
fi
args=("$@")
COMMAND="/mycommand "
for ### WHAT SHOULD I WRITE HERE??
PROPERTY=${args[$c]}
VALUE=${args[$c + 1]}
COMMAND="mycommand $PROPERTY $VALUE"
## Execute command
done
Run Code Online (Sandbox Code Playgroud)
试着这样做:
for ((i=0; i<${#args[@]}; i+=2)); do
PROPERTY="${args[$i]}"
VALUE="${args[$i + 1]}"
COMMAND="mycommand $PROPERTY $VALUE"
bash -c "$COMMAND"
done
Run Code Online (Sandbox Code Playgroud)
我建议不要使用CAPITALIZED字符作为变量名,保留那些内部系统变量
| 归档时间: |
|
| 查看次数: |
616 次 |
| 最近记录: |