Вы можете преобразовывать переменные в bash и ksh (используйте declare -i var
или typeset -i var
для interger), но я не думаю, что это ваша проблема.
Следующее приведет к установке var1
в ничто при выполнении команды в обычном режиме.
var1= free -m |awk 'NR == 2'| awk '{print $3}'
Если вы хотите, чтобы для вывода free и awk было установлено значение var1, то приведенное выше должно выглядеть так:
var1=$( free -m |awk 'NR == 2'| awk '{print $3}' )
Решение найдено с использованием этого базового, но работающего.conf скопировано из сюда и отредактировано
# Vars
ext_if="net0"
int_if="vnic0"
webports="{443, 80}"
## make IP reassembly work
set reassemble yes no-df
## ignore loopback traffic
set skip on lo0
# block everything unless told otherwise
# and send TCP-RST/ICMP unreachable
# for every packet which gets blocked
block return in log all
pass out all
# accept incoming SSH connections
pass in proto tcp to $ext_if port 22
# accept webeservers connections
pass in proto tcp to $ext_if port $webports
# accept icmp
pass in proto icmp all
## allow incoming messages from DHCP
pass in inet proto udp from port 67 to port 68
pass in inet6 proto udp from port 547 to port 546
## packet too big - needed for PMTUD
pass in inet6 proto ipv6-icmp icmp6-type 2
## router advertisement
pass in inet6 proto ipv6-icmp icmp6-type 134
## neighbor solicitation
pass in inet6 proto ipv6-icmp icmp6-type 135
## neighbor advertisement
pass in inet6 proto ipv6-icmp icmp6-type 136
## allow all connections initiated from this system,
## including DHCP requests
pass out
Я думаю, что в наборе правил есть опечатка, которую вы хотите сделать s/set skip on lo/set skip on lo0. Это должно исправить неправильное поведение брандмауэра при локальной проверке связи. Обратите внимание, что весь локальный трафик привязан к lo0, хотя вы можете проверять адреса, привязанные к к сетевым адаптерам. На такие пинги срабатывает антиспуф.