O último DWA
está sendo removido porque você está usando isso como seu delimitador. Os delimitadores dizem ao seu shell tudo entre essas strings correspondentes faz parte do meu doc aqui. Os delimitadores não fazem parte do documento e, portanto, são removidos quando o documento aqui é lido. A razão pela qual o DWA
anterior permaneceu é porque o delimitador deve estar no início da linha. Normalmente, vejo as pessoas usarem EOF
ou EOL
, mas essa sequência pode ser o que você quiser, desde que seja única e não apareça em seu documento.
Eu recomendo modificar isso:
cat <<-'EOF' > /opt/dwa.sh
#!/bin/bash
DWA() {
test='test'
read domain
find /var/www/html/${domain} -exec cp /var/www/html/${domain} /var/www/html/${test} {} \;
sed -i 's/${domain}/${test}'/g /var/www/html/test/wp-config.php
sed -i 's/${domain}/${test}'/g /var/www/html/test/wp-config.php
mysql -u root -p << MYSQL
create user '${test}'@'localhost' identified by '${psw}';
create database ${test};
GRANT ALL PRIVILEGES ON ${test}.* TO ${test}@localhost;
MYSQL
}
DWA
EOF
Se você quiser que essas variáveis sejam expandidas antes de serem enviadas para dwa.sh
, você deve desmarcar EOF
Acho essa página um recurso muito conciso para os documentos aqui: link