簡體   English   中英

帶有 Shell 腳本的數組中的“如果”

[英]'if' in array w/ Shell Script

我有一個具有不同值的數組,如果值為 3(整數),則此值將交換為 999(整數)。 但是我在數組的“if”塊中有一個語法問題。

正確的回報是:1 999 5 7 9 999

vetor=(1 3 5 7 9 3)
for i in ${vetor[*]}
do
    if [[ ${vetor[i]} = 3 ]]; then
        ${vetor[i]} = 999
    fi
    echo $i
done

這會在 Bash 中生成正確的 output:

vetor=(1 3 5 7 9 3);
for i in ${!vetor[*]};
do
     if [[ ${vetor[i]} -eq 3 ]]; then
         vetor[i]=999;
     fi;
     echo ${vetor[i]};
done

我加了! 在 for 循環表達式中獲取vetor的索引而不是值,並且我在 if 條件中刪除了賦值周圍的 ${} (這給出了“如果 3 不是錯字”警告)。 還更改了 echo 以獲取 vetor[i] 的值,而不是打印索引。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM