Оказывается, что iptables слишком плохо обрабатывает ведущие нули. Поскольку $machinenumber
, который используется, должен иметь перед ним ноль в других целях, идея состоит в том, чтобы создать новую переменную ($nozero
) на основе $machinenumber
, где ведущие нули удаляются.Удаление ведущих нулей перед передачей переменной оболочки в другую команду
$machinenumber
является двузначное число от 01 до 24. В настоящее время это 09
$machinetype
74 сейчас и не вызвало никаких проблем раньше.
То, что я до сих пор:
nozero = (echo $machinenumber | sed 's/^0*//')
iptables -t nat -I POSTROUTING -s 10.($machinetype).($nozero).0/24 -j MASQUERADE
Хотя я считаю, что я на правильном пути, результаты кода в:
ERROR - Unknown string operation
А? '($ machinenumber + 0)' не является синтаксисом math в bash. –