gpt4 book ai didi

bash - 外壳 : iterate over array

转载 作者:行者123 更新时间:2023-11-29 09:19:27 26 4
gpt4 key购买 nike

我的脚本接受键值对作为命令行参数。我测试给定数量的参数是否偶数。如果偶数,我想遍历数组,将 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

最佳答案

尝试这样做:

for ((i=0; i<${#args[@]}; i+=2)); do
PROPERTY="${args[$i]}"
VALUE="${args[$i + 1]}"
COMMAND="mycommand $PROPERTY $VALUE"
bash -c "$COMMAND"
done

我建议不要使用大写字符作为变量名,将它们保留为您的内部系统变量

关于bash - 外壳 : iterate over array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15466808/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com