Kirjoittaja Aihe: return string joe -editorilta ?  (Luettu 264 kertaa)

Mistofelees

  • Käyttäjä
  • Viestejä: 695
    • Profiili
return string joe -editorilta ?
« : 19.08.26 - klo:12.01 »
Onko jotain tapaa, jolla saisi bash-scriptissä joe editorin palauttaman joen loppulauseen  muuttujaan ?
Mahdolliset joen palauttamat loppulauseet
- " File tmp not changed so no update needed "
- " File tmp saved "

Tarkoitus on tehdä scripti, joka kopioi editoidun tiedoston serverille *ainoastaan*, jos se on muuttunut.
Joe palauttaa $? -argumenttiin aina arvon '0', joten pitää tutkia tuota joen palauttamaa lausetta.

komento lause=$(joe tmp) käynnistää joen jonnekin taustalle näkymättömiin, joten editointi ei onnistu:
Koodia: [Valitse]
#!/bin/bash
ulos=$(joe tmp)
echo "Tulos: $ulos"

Saan joen editorin näkymään ja tuloksen scriptin käyttöön, jos kierrätän tuloksen tiedoston kautta, mutta se ei tunnu kovin sivistyneeltä:
Koodia: [Valitse]
#!/bin/bash
joe tmp 2>aa
echo "Tulos:"; cat aa

nm

  • Käyttäjä
  • Viestejä: 17102
    • Profiili
Vs: return string joe -editorilta ?
« Vastaus #1 : 19.08.26 - klo:15.16 »
Tarkoitus on tehdä scripti, joka kopioi editoidun tiedoston serverille *ainoastaan*, jos se on muuttunut.

Laske tiedostosta tarkistussumma (esim. SHA-256) ennen editorin avaamista ja uudelleen editorin sulkemisen jälkeen. Jos summat täsmäävät, tiedoston sisältöä ei ole muutettu. Tämä mekanismi toimii editorista riippumatta. Lisäksi voit tarpeen mukaan tarkistaa myös tiedoston viimeisen muokkausajan stat-komennolla:

Koodia: [Valitse]
stat -c %y tmp