@fokin_nikolay1989

Как записать все в одну строку и вывести все в файл?

Есть код на bash:
#/bin/sh
inetADD=$1
#GATEWAY=
#DNS1=
NETMASK=255.255.255.128
ip address | grep -v lo | cut -d ' ' -f2 | tr ':' '\n' | awk NF
echo "Enter interface:"
read nameINT
uuid=$($nameINT)
echo -e "NAME=$nameINT\nDEVICE=$nameINT\nBOOTPROTO=static\nUUID=$uuid\nONBOOT=yes\nIPADDR=$1\nNETMASK=$NETMASK" >> /etc/sysconfig/network-scripts/ifcfg-$nameINT
ifdown $nameINT && sleep 3 && ifup $nameINT
if [ "`ping -c 1 -I $nameINT 192.168.1.1`" ] then
  echo "Ping GOOD. System EXIT"
exit
else
  echo "Reloading the interface"
ifdown $nameINT && sleep 10 && ifup $nameINT
ping -c 1 -I $nameINT 192.168.1.1
echo "ERROR"
fi

Как можно все это содержимое поместить в файл, как текст через echo или print ну в формате примерно так:
echo -e "#/bin/bash\n.....и так далее из файла" >> /home/script.sh
  • Вопрос задан
  • 219 просмотров
Пригласить эксперта
Ответы на вопрос 2
karabanov
@karabanov Куратор тега Linux
Системный администратор
Используй Ansible и шаблоны Jinja2
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
экранируешь все доллары и делаешь cat через DocumentHere:
cat <<EOF >newfile.sh
...
EOF


Вот полный пример, можно этот текст поместить в скрипт, выполнить или вставить целиком из буфера, или набрать от руки, и он сделает тебе новый file.sh
cat <<EOF>file.sh
#/bin/sh
inetADD=\$1
#GATEWAY=
#DNS1=
NETMASK=255.255.255.128
ip address | grep -v lo | cut -d ' ' -f2 | tr ':' '\n' | awk NF
echo "Enter interface:"
read nameINT
uuid=\$(\$nameINT)
echo -e "NAME=\$nameINT\nDEVICE=\$nameINT\nBOOTPROTO=static\nUUID=\$uuid\nONBOOT=yes\nIPADDR=\$1\nNETMASK=\$NETMASK" >> /etc/sysconfig/network-scripts/ifcfg-\$nameINT
ifdown \$nameINT && sleep 3 && ifup \$nameINT
if [ "\$(ping -c 1 -I \$nameINT 192.168.1.1)" ] then
  echo "Ping GOOD. System EXIT"
exit
else
  echo "Reloading the interface"
ifdown \$nameINT && sleep 10 && ifup \$nameINT
ping -c 1 -I \$nameINT 192.168.1.1
echo "ERROR"
fi
EOF
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы