У меня есть этот скрипт:Циклическая ссылка имя
#!/bin/bash
function contains() {
local -n array=$1
local value=$2
for item in "${array[@]}"; do
[ "$item" = "$value" ] && return 0
done
return 1
}
array=(a "b c" "d")
value="b c"
contains array value
Забегая я получаю эту ошибку:
***: line 6: warning: array: circular name reference
Что это значит? Как это исправить?
переименовать 'массив = (а "BC", "d")' в 'somethingelse = (а "Ьс" "d")' – amdixon
@amdixon да, это помогает, но не было 'local -n array = $ 1' должно работать? – warvariuc
Когда вы выполняете 'contains array value', первая строка функции становится' local -n array = array'. См. Круговую ссылку? – 4ae1e1