Kirjoittaja Aihe: Pienet näppärät scriptit (bash, python, perl yms.)  (Luettu 113745 kertaa)

SuperOscar

  • Käyttäjä
  • Viestejä: 4000
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #20 : 23.07.07 - klo:09.35 »
Minusta käyttöohjeet olisi hyvä tulostaa jos skripti ajetaan ilman parametreja.

No joo, omaan käyttöönsä tekemiinsä ”pieniin näppäriin skripteihin” sitä ei aina viitsi vääntää...

 Lisäksi virhetilanteessa olisi hyvä palauttaa virhekoodi eli jotain muuta kuin nolla.

Lainaus
Koodia: [Valitse]
[ $# -ne 1 ] && echo "Usage: $(basename $0) sop://osoite.lähetykseen.com" && exit 1

Onpahan taas huvittava kielten sekoitus :)  Miksei sujuvaksi suomeksi ”Käyttö: ...”?
pöytäkone 1, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; NUC: openSUSE Leap 15.5; RPi 1: FreeBSD 13.2-RELEASE; RPi 2: LibreELEC 11

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #21 : 23.07.07 - klo:11.28 »
Minusta käyttöohjeet olisi hyvä tulostaa jos skripti ajetaan ilman parametreja.
No joo, omaan käyttöönsä tekemiinsä ”pieniin näppäriin skripteihin” sitä ei aina viitsi vääntää...

Oma käyttö on eri asia mutta viimeistään julkaisuvaiheessa olisi hyvä lisätä ruutuun tulostuvat ohjeet. "Pienissä näppärissä" ohjeiden tulostaminen on muutenkin varsin pieni lisävaiva kun se onnistuu yhdellä rivillä ja tässäkin tapauksessa itse ohjeosuus oli jo kirjoitettu skriptiin mutta sitä ei tulostettu virhetilanteissa.

Lainaus
Lainaus
Koodia: [Valitse]
[ $# -ne 1 ] && echo "Usage: $(basename $0) sop://osoite.lähetykseen.com" && exit 1

Onpahan taas huvittava kielten sekoitus :)  Miksei sujuvaksi suomeksi ”Käyttö: ...”?

Heh... Hyvä huomio. Normaalisti pyrin välttämään sekakielisyyttä ja tässä kävi lipsahdus kun kopioin parametrin suoraan alkuperäisestä skriptistä ajattelematta sen sisältöä. Jos olisin ajatellut niin olisin kirjoittanut senkin englanniksi.

Pieni selitys siltä varalta että joku takertuu tuohon kieleen. Yleensä skriptejä tehdessäni teen ne itseäni varten ja tällöin englanti on luonnollinen valinta sillä käytän käyttöjärjestelmää englanninkielisenä. Sekakielisyys saa karvani nousemaan pystyyn. Tämä pätee myös silloin kun muokkaan muiden skriptejä mikäli niissä ei ole jo valmiiksi käytetty jotakin muuta kieltä.

En kuitenkaan halua väheksyä suomenkieltä ja arvostan käännösprojektien parissa työskenteleviä ja olen heille suuresti kiitollinen.

Fa1r

  • Käyttäjä
  • Viestejä: 221
  • Reply #1!
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #22 : 23.07.07 - klo:15.39 »
Tulee itselläkin väännettyä sekakielelle melkein kaikki mahdollinen. Jostain syystä ensimmäisenä skriptiin teen käyttöohjeen ::)
What you don't know can hurt you, only you won't know it.
--$(fortune)
Elastisen Linux-biisi

SuperOscar

  • Käyttäjä
  • Viestejä: 4000
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #23 : 23.07.07 - klo:15.53 »
Jostain syystä ensimmäisenä skriptiin teen käyttöohjeen ::)

Olen kyllä itsekin tehnyt, jos skriptistä on tulossa monimutkaisempi: se auttaa hahmottamaan kokonaisuuden, joka on syntymässä, jolloin koodin vääntäminen helpottuu. Usein jo komentoriviparametreja miettiessään huomaa karkeimmat alustavat ajatusvirheensä.
pöytäkone 1, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; NUC: openSUSE Leap 15.5; RPi 1: FreeBSD 13.2-RELEASE; RPi 2: LibreELEC 11

Melmacian

  • Käyttäjä
  • Viestejä: 868
  • Ubuntu Hardy
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #24 : 23.07.07 - klo:16.04 »
Heh, itsekkin naureskelin tuolle kielien sekoitukselle. Minullakin myös tapana tehdä ohjelmat itselleni englanniksi, koska käyttöjärjestelmä on englanninkielinen, mutta nyt en viitsinyt kirjoitella kommentteja englanniksi suomifoorumille ja "käyttöliittymä" jäi vanhastaan englanniksi.

SuperOscar

  • Käyttäjä
  • Viestejä: 4000
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #25 : 27.07.07 - klo:17.03 »
Seuraavan skriptinpätkän vallan unohdin mainita: se poistaa kaikki varmuuskopiotiedostot (*~, *.bak) joko nykyhakemiston tai annetun hakemiston alta.

Koodia: [Valitse]
#!/bin/sh
if [ $# -eq 0 ]; then
    DEST=`pwd`
else
   DEST=$*
fi
find $DEST \( -name \*~ -o -iname \*.bak \) -print0 | xargs -0 rm
pöytäkone 1, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; NUC: openSUSE Leap 15.5; RPi 1: FreeBSD 13.2-RELEASE; RPi 2: LibreELEC 11

koskelam

  • Käyttäjä
  • Viestejä: 2
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #26 : 21.08.07 - klo:14.52 »
Windows puolella käytin digikuvien lataukseen Downloader Pro:ta, joka latasi kuvat automaattisesti ja siirsi kuvat luontipäivämäärän (eli ei siis kuvan lataushetken, niin kuin gthumbissa) mukaan kansioihin. En löytänyt ainakaan Gthumbista tai Digikamista omainaisuutta, joka osaisi tuon, niin tein skriptin sitä varten. Jotakin kertoo ohjelmointitaidoistani, että väänsin tätä melkein kaksi päivää  :-\ Mutta nyt se toimii, ainakin jotenkin  ;D.

Käyttö: Siirry haluttuun kansioon ja kirjoita ./jklpm.sh *

Koodia: [Valitse]
#!/bin/bash
#
# JKKLPM (Järjestä Kuvat Kansioihin LuomisPäivämäärän Mukaan

# Galleria
kohde="$HOME/Galleria"

# Tarkista onko exif asennettu
if [ -z "`which exif`" ]
then
        echo "Asenna ensin exif."
echo "sudo apt-get install exif"
        exit
fi

# Aloitetaan hommat
for arg in $@
do
  pvm=`exif -i $arg | grep 0x0132 | cut -c 8-17 | sed 's/\:/\./g'`
  if [ -z "$pvm" ]
  then
    continue
  else
    echo "Luodaan kansio $kohde/$arg"
    mkdir -p $kohde/$pvm
    echo "$PWD/$arg --> $kohde/$pvm/$arg"
    mv -i $arg $kohde/$pvm
  fi
done



Fa1r

  • Käyttäjä
  • Viestejä: 221
  • Reply #1!
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #27 : 02.10.07 - klo:19.59 »
Lisäilenpä omanikin tänne,

1 ohjelmien asennusta apt-getillä
peruskauraa, mutta tämäkin pitää lähes jokaiseen asennukseen tehdä  :-\

Koodia: [Valitse]
#!/bin/bash

(sudo apt-get install -y $1 > /dev/null 2> /dev/null && echo "Paketti $1 löytyi, asennettiin") || (echo "Haetaan $1:"; apt-cache search $1; test $(apt-cache search $1 | wc -l) == 0 && echo "Mitään ei löytynyt.")

2 firefox-laajennuspalikka, kotisivu- ja "ylös"-nappulat oikean hiirennäppäimen valikkoon
koska voit haluta niin. (huom. liite on uu-enkoodattu xpi-tiedosto, eli "uudecode homesup.txt" tuottaa xpi:n jonka voi asentaa vetämällä & pudottamalla)

[ylläpito on poistanut liitteen]
« Viimeksi muokattu: 14.10.07 - klo:16.13 kirjoittanut Fa1r »
What you don't know can hurt you, only you won't know it.
--$(fortune)
Elastisen Linux-biisi

Stanner

  • Käyttäjä
  • Viestejä: 203
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #28 : 25.10.07 - klo:11.25 »
Nämä ei ole varsinaisia scriptejä, mutta pari käskyä ja ohjelmaa löysin, jotka olivat varsin näppäriä.

Zenity(gnome) ja kdialog(KDE) käskyillä voi heittää scripteissä ruudulle erilaisia dialogeja, joissa se kysyy tietoja. Näitä tietoja voi sitten käyttää omissa scripteissään. Noilla ei voi tehdä kunnollisia graafisia käyttöliittymiä vaan niillä voi vaan hypäyttää ruudulle erilaisia valmiiksi määriteltyjä dialogeja: messageboxeja, inputboxeja, file-selectoreita ,yms.

Sitten varsin näppärä ohjelma on kommander(löytyy repoista), jolla voi tehdä jo sitten ihan kunnon graafisia käyttöliittymiä scripteille ja komennoille. Yksinkertaisimmillaan se voisi toimia esimerkiksi siten, että teet käyttöliittymän, joka kysyy erinäisiä tietoja samassa ikkunassa ja sitten kun painat jotain nappia ikkunassa, se ajaa scriptin, joka käyttää apuna ikkunassa annettuja tietoja. Kommander pystyy tekemään monimutkaisempiakin ohjelmia yllättävän nopeasti ja helposti. Miinuksena voisi sanoa, että ohjelma on suunniteltu käytettäväksi KDE työpöydällä. En tiedä kuinka hyvin toimii gnomessa. Dcop käsky ei ainakaan toimi.

Lisää tietoa saa googlettamalla: "zenity" "kdialog" "kommander". Jos olet komentorivi friikki ja tykkäät tehdä kaiken komentoriviltä, niin suosittelen ignooraamaan tämän viestin ja kyseiset ohjelmat ja komennot. ;)
« Viimeksi muokattu: 25.10.07 - klo:11.28 kirjoittanut Stanner »

Tonde

  • Käyttäjä
  • Viestejä: 919
  • Feisty Fawn
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #29 : 05.11.07 - klo:23.17 »
Pitihän tätä bashia vihdoin testata. Väsäsin skriptin, joka polttaa mp3-tiedostoista audio-cd:n. Esikuva tälle oli epelin kuvanpienennysskripti. Kaipaisi tämä vielä paljonkin viilausta, tarkistuksia, yms. mutta toimii näinkin.

Koodia: [Valitse]
#!/bin/bash

#versio 0.1
#Skripti pitää suorittaa hakemistossa, jossa on mp3-tiedostoja. Ajettaessa luodaan hakemisto
#wav, johon tallennetaan mp3-hakemiston sisältö lame-ohjelman avulla wav-muotoon.
#Seuraavaksi wav-hakemiston sisältö poltetaan cd-asemassa olevalle tyhjälle "CD-R"-levylle
#cdrecord-ohjelmalla. Lopuksi skripti poistaa luodut wav-tiedostot ja wav-hakemiston.

#Jotta ohjelma toimisi muillakin, kuin minulla, pitää selvittää cd-aseman
#laiteosoite komennolla "cdrecord -scanbus". Ohjelmat "cdrecord" ja "lame" pitää myös olla asennettuna.

path="wav"
cdBurner="2,0,0"

# jos hakemistoa ei ole, tehdään se
if [ ! -d "$path" ]; then
echo "luodaan hakemisto wav"
mkdir -p -m 777 $path
fi

for fileName in *.mp3 ; do
# ajetaan lame vain, jos tiedosto on olemassa
[ ! -f "$fileName" ] && break
        #muutetaan uuden tiedoston tiedostopäätteeksi .wav
newFileName="${fileName%.*}.wav"
lame --decode "$fileName" "$path/$newFileName" 
done

# Poltetaan hakemiston sisältö levylle, mutta vain, jos hakemistossa on tiedostoja
if [ls -1 | wc -l > 0]; then
cdrecord dev=$cdBurner -audio -pad $path/*.wav
echo
echo "Poistetaan väliaikaiset wav-tiedostot"
rm $path/*.wav
rmdir $path
else echo "Tiedosto on tyhjä, ei polteta mitään"
fi

Edit: korjasin raimon osoittaman virheen. (ihmettelinkin, miksi kyseinen ehto ei toiminut)
« Viimeksi muokattu: 05.11.07 - klo:23.36 kirjoittanut Tonde »
Heitä hyväsit hitaudelle. Asenna ubuntu!

raimo

  • Käyttäjä
  • Viestejä: 4165
  • openSUSE Tumbleweed
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #30 : 05.11.07 - klo:23.26 »
Taitaa olla virhe tässä:
Koodia: [Valitse]
if [ ! -d "$wav" ]; then
noin silmämääräisesti arvioituna lienee niin että pitäisi olla:
Koodia: [Valitse]
if [ ! -d "$path" ]; then
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

essal

  • Käyttäjä
  • Viestejä: 93
    • Profiili
    • essal
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #31 : 25.11.07 - klo:21.46 »
Joskus tuli tehtyä tälläinen scripti kuvien kutistamiseen internet jakelua varten:
http://www.suuronen.org/kutista

Tuo toimii vain *.jpg tiedostoilla, esim *.JPG ei toimi. Varmaankin tässä rivissä vikaa:
Koodia: [Valitse]
for kuva in *.jpg *.JPG *.jpeg *.JPEG *.png *.gif *.tiff *.bmp; do kutistakuva "$kuvat"; done
Itselleni muutin sen näin, en sitten tiedä kuinka "oikeaoppinen" tämä on....:
Koodia: [Valitse]
for kuva in *.[jJGgPpTtBb][pPIiNnMm][gGFfEePp]? ; do kutistakuva "$kuvat"; done
Tuolla siis toimii jpg JPG Jpg tiff TIFF Png png jne.
  ThinkPad R61i + Ubuntu 9.10 / ThinkPad R52 + Debian 5.0 (LXDE)

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #32 : 27.11.07 - klo:15.32 »
Koodia: [Valitse]
for kuva in *.[jJGgPpTtBb][pPIiNnMm][gGFfEePp]? ; do kutistakuva "$kuvat"; done
Tuolla siis toimii jpg JPG Jpg tiff TIFF Png png jne.

Ja iso joukko muitakin tiedostopäätteitä joilla ei ole mitään tekemistä kuvien kanssa. Eikö tuossa vaiheessa olisi jo helpompaa käydä läpi kaikki tiedostot, selvittää jokaisen mime-tyyppi (komentamalla file -bi) ja saadun mime-tyypin perusteella päätellä onko se kutistettava kuva?

essal

  • Käyttäjä
  • Viestejä: 93
    • Profiili
    • essal
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #33 : 27.11.07 - klo:16.26 »
Koodia: [Valitse]
for kuva in *.[jJGgPpTtBb][pPIiNnMm][gGFfEePp]? ; do kutistakuva "$kuvat"; done
Tuolla siis toimii jpg JPG Jpg tiff TIFF Png png jne.

Ja iso joukko muitakin tiedostopäätteitä joilla ei ole mitään tekemistä kuvien kanssa. Eikö tuossa vaiheessa olisi jo helpompaa käydä läpi kaikki tiedostot, selvittää jokaisen mime-tyyppi (komentamalla file -bi) ja saadun mime-tyypin perusteella päätellä onko se kutistettava kuva?
Varmasti, itselleni muutin tuon muotoon *.[jJ][pP][gGeE]? koska en tarvitse tuota kuin jpeg-kuviin.
  ThinkPad R61i + Ubuntu 9.10 / ThinkPad R52 + Debian 5.0 (LXDE)

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #34 : 27.11.07 - klo:19.48 »
Varmasti, itselleni muutin tuon muotoon *.[jJ][pP][gGeE]? koska en tarvitse tuota kuin jpeg-kuviin.

Jos komennat skriptissä tuota ennen shopt -s nocaseglob niin sinulle riittää *.jp{,e}g.

Marko Lavikainen

  • Käyttäjä
  • Viestejä: 130
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #35 : 04.01.08 - klo:14.24 »
Tässäpä oma skriptini, jonka juuri tein. Tuon kai voisi tehdä yksinkertaisemminkin, mutta halusin vääntää sen itselleni rautalangasta.

Ideana on se, että skripti tekee mistä tahansa tiedostosta varmuuskopion ennalta määrättyyn paikkaan sen polulla ja päivämäärällä varustettuna. Sitä voi käyttää esim. /etc-hakemistossa olevien tiedostojen varmuuskopiointiin, ennen kuin niihin tekee mitään muutoksia.

Koodia: [Valitse]
#!/bin/bash

[ $# -ne 1 ] && echo "Usage: $0 filename" >&2 && exit 1

BACKUP_PATH=/root/backup/files

ABSOLUTE_FILENAME="$(readlink -f "$1")"
ABSOLUTE_PATH="$(dirname "$ABSOLUTE_FILENAME")"
BACKUP_FILENAME="$BACKUP_PATH${ABSOLUTE_FILENAME}.$(date +%Y-%m-%d)"

# Taking backup of file if it does not exist

if [ ! -f "$ABSOLUTE_FILENAME" ]
then
  echo "File $ABSOLUTE_FILENAME does not exist! Not backing up!"
  exit 1
fi

if [ -f "$BACKUP_FILENAME" ]
then
  echo "Backup already exists!"
else
  mkdir -p --mode=700  "$BACKUP_PATH$ABSOLUTE_PATH"
  cp "$ABSOLUTE_FILENAME" "$BACKUP_FILENAME"
  echo "Backed up: $ABSOLUTE_FILENAME"
fi


Lisäksi annoin skriptille ytimekkäästi nimen bf (backup file).  :D

Muokkaus: Muokkasin skriptiä mgronberin hyvän huomion perusteella.
« Viimeksi muokattu: 05.01.08 - klo:12.30 kirjoittanut Marko Lavikainen »

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #36 : 04.01.08 - klo:17.20 »
Tässäpä oma skriptini, jonka juuri tein.

Ei toimi jos hakemistopolussa tai tiedostonimessä on välilyöntejä.

Alla on vaihtoehtoinen näkemys tuon toteutuksesta. Komento readlink on varsin näppärä. Myös komennot pushd ja popd ovat hyödyllisiä mikäli työhakemistoa pitää väliaikaisesti vaihtaa. Tässä siihen ei kuitenkaan ollut tarvetta.

Koodia: [Valitse]
#!/bin/bash

BACKUP_PATH=/root/backup/files

[ $# -ne 1 ] && echo "Usage: $0 filename" >&2 && exit 1

FILENAME="$1"

ABSOLUTE_FILENAME="$(readlink -f "$FILENAME")"
ABSOLUTE_PATH="$(dirname "$ABSOLUTE_FILENAME")"

# Taking backup of file

mkdir -p --mode=700  "$BACKUP_PATH/$ABSOLUTE_PATH"
cp "$ABSOLUTE_FILENAME" "$BACKUP_PATH/${ABSOLUTE_FILENAME}.$(date +%Y-%m-%d)"
echo "Backed up: $ABSOLUTE_FILENAME"

gdm

  • Sitä saa mitä tilaa...
  • Käyttäjä
  • Viestejä: 4363
    • Profiili
    • Keskustelualueiden säännöt
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #37 : 04.01.08 - klo:21.43 »
Tänään tässä aikani kuluksi väsäsin pari pientä nautilus-scriptiä,
parannus ehdotuksia otetaan vastaan...

ovat ihan vapaasti kaikkien käytettävissä!!!
Koodia: [Valitse]
#!/bin/bash
# Asenna ikoni-sarja /usr/share/icons/ kansioon

gksudo -u root -k /bin/echo "Asenna ikonit"

zenity --info --title "Ikonien asennus" --text "$* asennetaan ikoni kansioon"

if sudo mv "$*" /usr/share/icons/
then
if zenity --question --title "Ikonien asennus" --text "$* asennettu onnistuneesti, otetaanko käyttöön?"

then
gnome-appearance-properties
fi

exit 0
else
sudo rmdir /usr/share/icons/"$*"

zenity --error --title "Virhe" --text "Ikonien asennus epäonnistui"

exit 1
fi

Koodia: [Valitse]
#!/bin/bash
# Asenna teema /usr/share/themes/ kansioon

gksudo -u root -k /bin/echo "Asenna teema"

zenity --info --title "Teeman asennus" --text "$* asennetaan teema kansioon"

if sudo mv "$*" /usr/share/themes/
then
if zenity --question --title "Teeman asennus" --text "$* asennettu onnistuneesti, otetaanko käyttöön?"

then
gnome-appearance-properties
fi

exit 0
else
sudo rmdir /usr/share/themes/"$*"

zenity --error --title "Virhe" --text "Teeman asennus epäonnistui"

exit 1
fi
Lisää [Ratkaistu] aloitusviestiin jos ongelmasi selviää!
Saamasi tuki on ilmaista, joten älä vaadi tai uhkaile saadaksesi apua!

Marko Lavikainen

  • Käyttäjä
  • Viestejä: 130
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #38 : 05.01.08 - klo:12.37 »
Tässäpä oma skriptini, jonka juuri tein.

Ei toimi jos hakemistopolussa tai tiedostonimessä on välilyöntejä.

Alla on vaihtoehtoinen näkemys tuon toteutuksesta. Komento readlink on varsin näppärä. Myös komennot pushd ja popd ovat hyödyllisiä mikäli työhakemistoa pitää väliaikaisesti vaihtaa. Tässä siihen ei kuitenkaan ollut tarvetta.

Kiva tietää tuon readlink-komennon olemassaolo. Kiitos tiedosta. :D

Antamassasi ehdotelmassa on kuitenkin yksi pieni ongelma. Se näkyy esimerkiksi kohdassa "$BACKUP_PATH/$ABSOLUTE_PATH". Eli tuo keskellä oleva /-merkki täytyi ottaa pois, koska muuttuja $ABSOLUTE_PATH sisältää jo juuren /-merkin. Muuten saadaan polku, joka on muotoa /root/backup/files//jotain...

Muokkasinkin edellisessä viestissäni olevaa skriptiä parempaan kuntoon.

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #39 : 05.01.08 - klo:14.03 »
Antamassasi ehdotelmassa on kuitenkin yksi pieni ongelma. Se näkyy esimerkiksi kohdassa "$BACKUP_PATH/$ABSOLUTE_PATH". Eli tuo keskellä oleva /-merkki täytyi ottaa pois, koska muuttuja $ABSOLUTE_PATH sisältää jo juuren /-merkin. Muuten saadaan polku, joka on muotoa /root/backup/files//jotain...

Tuo ei ole ongelma. Hakemistopolussa olevista ylimääräisistä (ts. moninkertaisista) kauttaviivoista ei välitetä. Periaatteessa tuossa hakemistopolussa saattaa olla kolmekin kauttaviivaa peräkkäin tilanteesa jossa skriptiä omiin tarpeisiinsa editoiva on muuttanut BACKUP_PATH:ia ja epähuomiossa kirjoittanut hakemiston loppuun kauttaviivan.