Почему значение переменной не меняется внутри обратных кавычек?

Вы также можете воспользоваться такими операторами сравнения bash:

if [ $arg -eq $arg -a $arg -ge 0 ] 2>/dev/null ;then  
  echo "accepted"
else 
  echo "not accepted"
fi 

Хитрость в том, что если вы сравните с -eq два нечисловых аргумента, bash вызовет ошибку (которую мы отправили в / dev / null).

1
18.11.2016, 01:41
2 ответа

потому что `...` эквивалентен $ (...), который является подоболочкой. изменение переменных в подоболочке теряется при закрытии подоболочки.

4
27.01.2020, 23:19

Вы можете увеличить переменную следующим образом:

a=1
((a++))
echo $a
2

Что больше похоже на увеличение в стиле C, а не:

let a++

См. Ответ Ипора Сирцера что касается , почему ваш метод не работает!

0
27.01.2020, 23:19

Теги

Похожие вопросы