gpt4 book ai didi

bash - 按索引访问 shell 脚本参数

转载 作者:行者123 更新时间:2023-12-04 16:16:53 25 4
gpt4 key购买 nike

我敢肯定,当您进入 shell 编程时,这很容易。
不幸的是,我不是,而且我过得很艰难......

我需要验证传递给 shell 脚本的参数。
我还想存储在数组中传递的所有参数,因为我稍后需要进一步分离。

我有一个参数“-o”,后面必须跟 0 或 1。
因此,我想检查以下参数是否有效。
这是我尝试过的:

# Loop over all arguments
for i in "$@"
do
# Check if there is a "-" as first character,
# if so: it's a parameter
str="$i"
minus=${str:0:1}

# Special case: -o is followed by 0 or 1
# this parameter needs to be added, too
if [ "$str" == "-o" ]
then
newIdx=`echo $((i+1))` # <-- problem here: how can I access the script param by a generated index?
par="$($newIdx)"

if [[ "$par" != "0" || "$par" != "1" ]]
then
echo "script error: The -o parameter needs to be followed by 0 or 1"
exit -1
fi
paramIndex=$((paramIndex+1))

elif [ "$minus" == "-" ]
then
myArray[$paramIndex]="$i"
paramIndex=$((paramIndex+1))
fi
done

我尝试了各种事情,但没有奏效......
如果有人能阐明这一点,将不胜感激!

谢谢

最佳答案

bash ,您可以使用间接参数扩展来访问任意位置参数。

$ set a b c
$ paramIndex=2
$ echo $2
b
$ echo ${!paramIndex}
b

关于bash - 按索引访问 shell 脚本参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16916281/

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