[#] Bezpieczna edycja pliku

( Ostatnio zmieniony pon., 16/06/2008 - 22:33 )
 
#!/bin/bash

#
#    Skrypt do uruchamiania edycji pliku, podanego jako parametr, przy
#    użyciu edytora wskazanego przez zmienną EDITOR, z zachowaniem
#    poprzedniej wersji tego pliku (np. pod nazwą z dodatkowym rozszerzeniem  prv).
#

function usage() {
  echo "Poprawne uzycie:   $0 <plik_do_edycji>"
}

#jesli istnieje zmienna EDITOR
if [ ! -z $EDITOR ]; then
  echo "Naszym edytorem od teraz bedzie: $EDITOR"

  # jesli podana liczba parametrow jest dokladnie = 1
  if [ $# -eq 1 ];then

    # jesli plik istnieje
    if [ -e $1 ]; then

    EXT=`echo $1 | sed -e 's/.*\.//'`
    EXT_LOW=`echo $EXT | tr 'A-Z' 'a-z'`
    BASE="`echo "$1" | sed 's/\.[^.]*$//'`"

    bak_name=$BASE-`date +%d-%M-%Y_godz_%H:%m:%S`'.'$EXT_LOW

    echo "Wykonuje kopie starej wersji pliku"
    cp $1 $bak_name

    # czy udalo nam sie wykonac kopie?
    if [ -r $bak_name ]; then
      echo "Nowa nazwa pliku to: $bak_name"
      exec $EDITOR $1
    else
      # nie udalo sie wiec nie edytujemy pliku
      echo "Nie udana proba stworzenia kopii pliku $1"
    fi
    else
      # podany plik nie istnieje
      echo "Podany plik nie istnieje"
    fi
    else
      # podano zla ilosc parametrow - instruujemy o uzyciu
      echo "Liczba parametrow jest niepoprawna."
      usage
    fi
else
  # brak zmiennej EDITOR i informacja o tym jak ja ustawic
  echo "Nie posiadasz ustawionej zmiennej EDITOR"
  echo "Mozesz ja ustawic korzystajac np. z polecenia:
    EDITOR=nano
    export EDITOR
  "
fi
5
Twoja ocena: Brak Średnio: 5 (2 głosy)