Я делаю сценарий bash с веб-API контрольной точки.
126: No such file or directory
эта ошибка относится к строке 25, в которой у меня есть следующее предложение:
while [$reglas < $n_reglas ];do
Я попытался изменить это на:
while [$reglas -lt $n_reglas ];do
но ошибка сохраняется, и я не уверен, в чем настоящая проблема.
Переменные определяются следующим образом:
reglas=1
n_reglas=$(echo $rulebase_list | jq '.total')
и я напечатал их значение, чтобы убедиться, что они принимают правильное значение. Есть идеи, в чем проблема? Спасибо!
Попробуйте while [ $reglas -lt $n_reglas ]; do (обратите внимание на пробел после открывающей скобки) или while ((reglas < n_reglas)); do.
Рад, что ответ помог, в чем причина / что исправило? Не могли бы вы написать короткий комментарий к моему ответу? Возможно, я смогу обновить его, чтобы он был более полезным для других, идущих по этому пути :)
ошибка заключалась в том, что я делал reglas = $ reglas + 1 и создавал строку, которая была 1 + 1, поэтому я использую reglas = $ (echo $ ((regkas + 1))), как в примере Майкла





К сожалению, не очень ясно, в чем проблема. Попробуйте воспроизвести проблему в небольшом фрагменте кода, который мы можем выполнить и устранить. Таким образом, нам не нужно гадать, и мы сможем оказать более точную помощь.
Вот небольшой фрагмент с множеством предположений.
reglas=1
n_reglas=4 # https://jqplay.org/s/BCTXyJ4NLc
while [ $reglas -lt $n_reglas ]; do
echo $reglas
reglas=$(($reglas+1))
done
# $bash -f main.sh
# 1
# 2
# 3
Добро пожаловать в SO, на SO OP должен публиковать образцы ввода и вывода в тегах кода вместе с усилиями, которые OP приложил для решения его / ее проблемы в публикации, так что любезно сделайте это и сообщите нам об этом. Это не совсем понятно.