Назад | Перейти на главную страницу

Bash-скрипт, чтение из файла и запись в другой файл

у меня есть прокси-сервер под названием 3proxy. Мне нужно добавить ip вот так:

 flush
 auth iponly strong
 deny * * * 25,2525 * * *
 allow test
 proxy -n -a -i192.168.110.1 -e192.168.110.1 -p65233
 socks -n -a -i192.168.110.1 -e192.168.110.1 -p65234

Это блок конфига 3proxy. Мне нужно добавить в 3proxy еще 100 блоков config 3proxy с разными ip. Пишу сценарий:

if [ -f /root/ip ]; then
 for IP_IN_NGINX in `grep -v ^# /root/ip`; do
 cat > "/root/3proxy" <<END
 flush
 auth iponly strong
 deny * * * 25,2525 * * *
 allow test
 proxy -n -a -i$IP_IN_NGINX -e$IP_IN_NGINX -p65233
 socks -n -a -i$IP_IN_NGINX -e$IP_IN_NGINX -p65234
END
  done
fi

В / root / ip у меня блок с IP. В / root / 3proxy я хочу написать много блоков конфигурации с разными IP. Когда я запускаю скрипт, у меня в выходном файле есть один блок config 3proxy с одним IP. Но мне нужно много блоков конфигурации с разными IP из моего файла. Где у меня ошибка? Пожалуйста помоги.

Вы должны использовать >> и нет >! В первом случае вы добавляете вывод (или создаете, если пункт назначения не существует), а в последнем вы перезаписываете.