Ошибка построения сети сценария оболочки: не найдено,: имя файла слишком длинное - PullRequest
0 голосов
/ 10 июля 2020

Я пытался построить сеть с помощью сценария оболочки

Однако у меня возникла ошибка вроде изображения (: не найдено,: слишком длинное имя файла)

Я бродил в течение дней, где и как исправить.

enter image description here


#!/bin/bash

sysctl -w net.ipv4.ip_forward=1

hn=$(hostname)

echo $hn

case $hn in

"node0")

echo"

auto lo


iface lo inet loopback


auto eth0

iface eth0 inet static

address 192.168.137.8

netmask 255.255.255.0

network 192.168.137.0

gateway 192.168.137.1



auto eth1

iface eth1 inet static

address 10.0.30.9

netmask 255.255.255.0

network 10.0.30.0


gateway 10.94.30.8

"> / etc / network / interfaces ;; "node1") echo "auto lo iface lo inet loopback auto eth0 iface eth0 inet статический адрес 192.168.137.9 маска сети 255.255.255.0 сеть 192.168.137.1 шлюз 192.168.137.1 auto eth1 iface eth1 inet статический адрес 10.94.10.8 netmask 255.255.255.0 сеть 10.94.10.0 шлюз 10.94.10.9 "> / etc / network / interfaces ;; "node2") echo "auto lo iface lo inet loopback auto eth0 iface eth0 inet статический адрес 10.94.10.9 netmask 255.255.255.0 network 10.94.10.0 gateway 10.94.10.8 auto eth1 iface eth1 inet static address 10.94.20.8 маска сети 255.255.255.0 сеть 10.94.20.0 шлюз 10.94.20.9 "> / etc / network / interfaces ;; "node3") echo "auto lo iface lo inet loopback auto eth0 iface eth0 inet статический адрес 10.94.20.9 netmask 255.255.255.0 network 10.94.20.0 gateway 10.94.20.8 auto eth1 iface eth1 inet static address 10.94.30.8 маска сети 255.255.255.0 сеть 10.94.30.0 шлюз 10.94.30.9 "> / etc / network / interfaces ;; esac echo "сервер имен 192.168.137.1 поиск в локальном домене"> /etc/resolv.conf systemctl restart network.service 

1 Ответ

0 голосов
/ 15 июля 2020

Я предлагаю вам использовать подход heredoc (здесь документ) для создания ваших выходных файлов вместо echo. Например,

"node1")
cat << EOF > /etc/network/interfaces
All lines from here to the line before the EOF below will be written to the file.
... multiple lines deleted ...
  This last line is indented by two spaces.
EOF
;;
...