: use >>
para anexar, use [ -f file ]
para testar.
tente
if [ ! -f myfile ]
then
cat <<EOF > myfile
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name $server ;
root /usr/share/nginx/html;
}
EOF
fi
- a sintaxe
cat <<EOF
é chamada de " aqui documento ". -
$server
será substituído pelo seu valor ou vazio se não for definido. - como apontado, você pode usar o único citado
'EOF'
para evitar a substituição do var, se houver. -
você também pode ter vários ecos (isso pode ser difícil de manter se houver muitos ecos)
echo "## foo.conf" > foo.conf echo param1=hello >> foo.conf echo param2=world >> foo.conf
prefixando
não há prefácio direto no bash, use o arquivo temporário
mv file file_tmp
cat new_content file_tmp > file
rm file_tmp
ou edite-o
sed -i -e '1r new_file' -e 'wq' file