vi è per definizione un editor visuale.
In questo caso è probabilmente meglio usare qualche altro mezzo.
Se vuoi solo aggiungere quelle righe, fai qualcosa come:
cat >> filename.sh <<'EOF'
export GRADLE_HOME=/opt/gradle/gradle-5.2.1
export PATH=${GRADLE_HOME}/bin:${PATH}
EOF
Funzionerà anche se il file non esiste ancora.
Se vuoi che queste righe vengano aggiunte all'inizio, puoi usare ed che è un editor orientato alla riga:
ed filename.sh <<'EOF'
1i
export GRADLE_HOME=/opt/gradle/gradle-5.2.1
export PATH=${GRADLE_HOME}/bin:${PATH}
.
w
q
EOF
Questo istruisce ed inserire righe alla riga 1; il punto solitario . sulla riga indica la fine dell'input, quindi l'inserimento si ferma lì. Infine viene scritto il file (w ) e la sessione di modifica è stata chiusa (q ).
Se insisti nell'usare ed anche se il file non esiste ancora (nel qual caso userei il file cat esempio sopra), puoi usare questo:
ed filename.sh <<'EOF'
i
export GRADLE_HOME=/opt/gradle/gradle-5.2.1
export PATH=${GRADLE_HOME}/bin:${PATH}
.
w filename.sh
q
EOF
La differenza principale è che non passi un numero di riga con i inserire il comando, poiché non ci sono ancora righe; e passi un nome file al w comando di scrittura che è il nuovo file.
sed può anche essere usato, ma per tali compiti trovo ed più facile da usare (e da leggere cosa sta succedendo).