GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie schreibe ich ein Bash-Skript oder automatisiere das offene vi und bearbeite das Dokument?

vi ist per Definition ein visueller Editor.

In diesem Fall ist es wahrscheinlich besser, andere Mittel zu verwenden.

Wenn Sie nur diese Zeilen anhängen möchten, tun Sie so etwas wie:

cat >> filename.sh <<'EOF'
export GRADLE_HOME=/opt/gradle/gradle-5.2.1
export PATH=${GRADLE_HOME}/bin:${PATH}
EOF

Dies funktioniert auch, wenn die Datei noch nicht existiert.

Wenn Sie möchten, dass diese Zeilen am Anfang hinzugefügt werden, können Sie ed verwenden das ist ein zeilenorientierter Editor:

ed filename.sh <<'EOF'
1i
export GRADLE_HOME=/opt/gradle/gradle-5.2.1
export PATH=${GRADLE_HOME}/bin:${PATH}
.
w
q
EOF

Dies weist ed an um Zeilen in Zeile 1 einzufügen; der einsame Punkt . auf der Linie zeigt das Ende der Eingabe an, sodass die Einfügung dort stoppt. Abschließend wird die Datei geschrieben (w ) und die Bearbeitungssitzung wurde beendet (q ).

Wenn Sie darauf bestehen, ed zu verwenden auch wenn die Datei noch nicht existiert (in diesem Fall würde ich den cat verwenden Beispiel oben), können Sie dies verwenden:

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

Der Hauptunterschied besteht darin, dass Sie mit i keine Zeilennummer übergeben Befehl einfügen, da noch keine Zeilen vorhanden sind; und Sie übergeben einen Dateinamen an w Schreibbefehl, der die neue Datei ist.

sed kann auch verwendet werden, aber für solche Aufgaben finde ich ed einfacher zu verwenden (und zu lesen, was passiert).


Linux
  1. Wann soll in Bash ein Alias, wann ein Skript und wann eine Funktion geschrieben werden?

  2. Wie debuggt man ein Bash-Skript?

  3. Wie stoppe ich das Loop Bash-Skript im Terminal?

  4. Wie listet man die offenen Dateideskriptoren (und die Dateien, auf die sie sich beziehen) in der aktuellen Bash-Sitzung auf?

  5. Wie liest man das gesamte Shell-Skript, bevor man es ausführt?

So schreiben Sie ein Bash-Skript mit Beispielen

Bash-Skripting-Tutorial für Anfänger:Was es ist, wie man eines schreibt und Skriptbeispiele

So führen Sie ein Bash-Skript aus

Wie kann ich von der seriellen Schnittstelle in C öffnen, lesen und schreiben?

Wie verwende ich die Befehle watch und jobs zusammen in Bash?

Wie erhalte ich die PID eines Prozesses und rufe im Shell-Skript kill -9 darauf auf?