Ubuntu Suomen keskustelualueet
Muut alueet => Yleistä keskustelua => Aiheen aloitti: Mistofelees - 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:
#!/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ä:
#!/bin/bash
joe tmp 2>aa
echo "Tulos:"; cat aa
-
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:
stat -c %y tmp