GNU/Linux >> Znalost Linux >  >> Linux

Jak napsat bash skript nebo automatizovat otevření vi a upravit dokument?

vi je z definice vizuální editor.

V tomto případě je pravděpodobně lepší použít jiné prostředky.

Pokud chcete pouze připojit tyto řádky, udělejte něco jako:

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

Toto bude také fungovat, pokud soubor ještě neexistuje.

Pokud chcete tyto řádky přidat na začátek, můžete použít ed což je řádkově orientovaný editor:

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

To dává pokyn ed vložit řádky na řádek 1; jediná tečka . na řádku označuje konec vstupu, takže vkládání se tam zastaví. Nakonec je soubor zapsán (w ) a relace úprav byla ukončena (q ).

Pokud trváte na použití ed i když soubor ještě neexistuje (v takovém případě bych použil cat příklad výše), můžete použít toto:

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

Hlavním rozdílem je, že s i nepředáváte číslo řádku příkaz insert, protože zatím nejsou žádné řádky; a předáte název souboru do w příkaz write, což je nový soubor.

sed lze také použít, ale pro takové úlohy nacházím ed snadnější použití (a čtení toho, co se děje).


Linux
  1. V Bash, kdy alias, kdy skript a kdy napsat funkci?

  2. Jak ladit Bash skript?

  3. Účel .bashrc a jak to funguje?

  1. Jak vypsat popisy otevřených souborů (a soubory, na které odkazují) v aktuální relaci Bash?

  2. Jak číst celý skript Shell před jeho spuštěním?

  3. Jak poznám název souboru skriptu ve skriptu Bash?

  1. Jak otevírat a zavírat adresáře v terminálu Linux

  2. Jak získat pid procesu a vyvolat na něj kill -9 ve skriptu shellu?

  3. Jak vypsat seznam otevřených deskriptorů souborů (a souborů, na které odkazují) v mé aktuální relaci bash