【发布时间】:2021-10-12 16:26:21
【问题描述】:
为什么这些行不起作用?是否有可能让它们发挥作用?如果这是一个愚蠢的问题,您能否向我解释一下 shell 如何从数组中读取值是文本还是整数,请不要笑我刚开始学习 :)。
if [ ${a[1]} -gt ${a[2]} ] ;
for (( b=0; b > ${a[2]}; b++));
#!/bin/bash
read a arr
if [ ${a[0]} -ne 1 ] && [ ${a[0]} -ne 2 ] && [ ${a[0]} -ne 3 ];
then
echo "Ne poznam vrednosti prvega parametra"
echo "Konec skripte"
else
if [ ${a[0]} -eq 1 ];
then
echo "Prvi parameter ima vrednost ${a[0]}"
if [ ${a[1]} -gt ${a[2]} ] ;
then
echo "Drugi parameter je vecji ali enak tretjemu parametru."
else
echo "Drugi parameter ni vecji ali enak tretjemu parametru."
fi
fi
if [ ${a[0]} -eq 2 ];
then
echo "Prvi parametar ima vrednost: 2"
for (( b=0; b > ${a[2]}; b++));
do
echo "WORKS"
done
fi
fi
【问题讨论】:
-
将您的脚本粘贴到shellcheck.net 以获取验证/建议。
-
您认为
read a arr应该做什么,尤其是考虑到所有对名为a[]的数组的引用? -
它让我在终端中输入值,例如:1 5 4
-
当然,但是这些值存储在哪里?我假设您想要的是
read -a arr... 将这些值 (1 5 4) 存储在名为arr[]的数组中,但是您需要修复其余代码你真的想引用一个名为arr[]的数组,而不是引用一个名为a[]的数组;或者,使用read -a a将值读入名为a[]的数组中,无需更改对名为a[]的数组的后续引用 -
谢谢你为我解决了这个问题,我终于可以完成我的项目了,我希望我不穷,所以我可以付钱给你!您不仅帮助了我,还向我解释了这一点,我非常感激!