Я не уверен, что понял все ваше эхо, но это может быть то, что вам нужно.
Поместите именно то, что вы хотите, в файл mysqlsec_skript.sh внутри здесь строки , то есть многострочной строки, которая начинается в строке после «<< 'endoffileindicator'» и заканчивается непосредственно перед строкой, состоящей только из выбранного конечного индикатора. Я использовал одиночный символ "!" как конечный индикатор. Таким образом, команда cat
читает все до строки с просто "!" (пробелы не допускаются) и копирует его в пункт назначения.
cat <<'!' > /root/mysqlsec_skript.sh
#!/bin/bash
FILE=/root/mysqlsecure
if [ -f $FILE ]
then
echo "File $FILE exists, mysql is safe!"
else
echo "File $FILE does not exists, secure mysql"
mysqladmin -u root password 'secret'
mysql -u root -p'secret' -e "UPDATE mysql.user SET Password=PASSWORD('secret') WHERE User='root'"
mysql -u root -p'secret' -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1')"
mysql -u root -p'secret' -e "DELETE FROM mysql.user WHERE User=''"
mysql -u root -p'secret' -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\_%'"
mysql -u root -p'secret' -e "FLUSH PRIVILEGES"
touch /root/mysqlsecure
fi
!
chmod +x /root/mysqlsec_skript.sh
Awk
solución (sin shell loops y cadenas de tuberías):
awk 'BEGIN{ OFS=", "; print "Interface, In Errors, Out Errors" }
/line protocol /{ ifc=$1 }
/input errors/{ in_err=$1 }
/output errors/{ print ifc, in_err, $1 }' "$DATAFILE/$rname.intfs"
La salida:
Interface, In Errors, Out Errors
GigabitEthernet0/0, 1, 275
GigabitEthernet0/1, 0, 42