Технически, единственное, что сломано, это пробелы. Не размещайте пробелы вокруг своих операторов в синтаксисе оболочки:
config[$i]="value2"
Однако есть много других мелочей, о которых вы можете подумать. Например, если элемент из config
может содержать пробелы, тест может нарушиться. Используйте кавычки или ключевое слово [[
, чтобы этого избежать.
… if [[ ${config[$i]} = "value1" ]]
then config[$i]="value2" …
seq
- нестандартный внешний исполняемый файл. Вам будет лучше использовать встроенный синтаксис итерации. Кроме того, предполагая, что итерация происходит по всем элементам в config
, вы, вероятно, просто хотите сделать:
for ((i=0; i<${#config[@]}; i++));
do
if [[ ${config[$i]} = "value1" ]]
then config[$i]="value2"
fi
done