Есть много проблем:
foreach
не является ключевым словом bash: используйте для
$ (...)
, а не только круглые скобки для i в *.DAT; выполните
(в общем см. Почему * не * разобрать `ls`? ) man test
): если [$ a -le 2]; тогда
для
заканчивается done
, а не end
, если
заканчивается fi
и not endif
wc
, он напечатает количество строк и имя файла. Используйте , чтобы wc
считывались со стандартного ввода
Подводя итог:
#!/bin/sh
for i in *DAT; do
a=$( wc -l < "$i" )
if [ "$a" -le 2 ] ; then
mv "$i" aux1/pelvar/var/pel/projs/ar/shells/IGUD_OUT/backup
fi
done
Причина, по которой ваша установка не работает, заключается в том, что ваш WAN-маршрутизатор (назовем его r1) не знает, как добраться до виртуальной машины за маршрутизатором Ubuntu (назовем его r2).
Вы должны (на r1) добавить маршрут к сети 3.0.0.0/24, с LAN-адресом r2 (192.168.1.254) в качестве следующего хопа.
Как это сделать, зависит от программного обеспечения r2.
В качестве дополнения (как было указано в одном из комментариев): вы должны не назначать произвольные сетевые адреса, даже если сеть находится за NAT-маршрутизатором. Вместо этого используйте 10.0.0.0/8 или 172.16.0.0/16 - подробности см. в RFC 1918.
Вам придется указать ядру r2 пересылать IP-пакеты:
echo 1 | sudo tee > /proc/sys/net/ipv4/ip_forward
Затем сделайте это постоянным, откомментировав следующую строку в /etc/sysctl.conf
net.ipv4.ip_forward = 1