skrypt do zmiany has

Potrzebujesz pomocy z C, C++, perl, python, itp.
biolkell
Beginner
Posty: 110
Rejestracja: 06 sierpnia 2013, 21:34

skrypt do zmiany hasła

Post autor: biolkell »

jak przeczytać plik w którym mam dwie wartości przedzielane np ::
czyli mamy users::haslo
chce wydobyć obie wartości osobno
biolkell
Beginner
Posty: 110
Rejestracja: 06 sierpnia 2013, 21:34

Post autor: biolkell »

ma ktoś jakiś pomysł jak to powinienem ugryź ?
Awatar użytkownika
f1.micro
Beginner
Posty: 119
Rejestracja: 24 lutego 2009, 11:32
Lokalizacja: Kraków

Post autor: f1.micro »

Kod: Zaznacz cały

cut -d '::' -f1
cut -d '::' -f2
biolkell
Beginner
Posty: 110
Rejestracja: 06 sierpnia 2013, 21:34

Post autor: biolkell »

Robie tak ze zamiast pliku wskazuje na zmienną i mam błąd

kod z błędem

Kod: Zaznacz cały

10    for wers in $(cat lista.txt)
    11    do
    12    HASLO="test1234"
    13    SUBJECT='Konto zalozone'
    14    EMAIL=""$wers"@test.tionbk.net"
    15    #MESSAGE = 'Witam , konto zalozone login to:$WERS , haslo to "$HASLO"'
    16    
    17    
    18    $f1=`cut -d ':' -f1 $wers`
    19    $f2=`cut -d ':' -f2 $wers`
    20    #$MESSAGE="Witam , konto zalozone login to:$wers , haslo to $HASLO"
    21    echo $f1
    22    echo $f2
    23    #echo -d /home/$f1 -m $f1 -p $f2
    24    #passwd $HASLO $WERS
    25    
    26    #mail  -s   "$SUBJECT" "$EMAIL" "$MESSAGE"
    27    done




błąd :

Kod: Zaznacz cały

cut: ananas12:test: Nie ma takiego pliku ani katalogu
./skrypt.sh: line 18: =: nie znaleziono polecenia
cut: ananas12:test: Nie ma takiego pliku ani katalogu
./skrypt.sh: line 19: =: nie znaleziono polecenia
Awatar użytkownika
f1.micro
Beginner
Posty: 119
Rejestracja: 24 lutego 2009, 11:32
Lokalizacja: Kraków

Post autor: f1.micro »

Kod: Zaznacz cały


$PLIK=/sciezka/do/pliku

zmienna=`cut -d ':' -f1 $PLIK`

Zwróć uwagę że komenda jest napisana w apostrofach (tych "krzywych" -> po lewej od 1nki)
Awatar użytkownika
f1.micro
Beginner
Posty: 119
Rejestracja: 24 lutego 2009, 11:32
Lokalizacja: Kraków

Post autor: f1.micro »

Wyedytowałeś wiadomość kiedy pisałem Ci odpowiedź.

OK:

to inaczej

Kod: Zaznacz cały

zmienna=`echo $wers | cut -d ':' -f1`
biolkell
Beginner
Posty: 110
Rejestracja: 06 sierpnia 2013, 21:34

Post autor: biolkell »

Dziękuje za pomoc teraz śmiega mam jeszcze pytanie odnośnie wysłania maila używam mail -s temat kontoemail Wiadomości mail -s "$SUBJECT" "$EMAIL" "$MESSAGE" . Jak zapuszczę skrypt to jeszcze na coś oczekuje przy tym co powinienem poprawić?

Kod: Zaznacz cały

root@debian:/student# cat -n skrypt.sh 
     1    #!/bin/bash
     2    
     3    
     4    echo 'Wybierz Student[s] lub Pracownik[p]'
     5    read kto
     6    
     7    if [ $kto = "s" ]  ;
     8    then
     9        #echo 'student automatyczna'
    10    for wers in $(cat lista.txt)
    11    do
    12    
    13    SUBJECT='Konto zalozone'
    14    #EMAIL=""$wers"@test.tionbk.net"
    15    #MESSAGE = 'Witam , konto zalozone login to:$WERS , haslo to "$HASLO"'
    16    
    17    
    18    f1=`echo $wers | cut -d ':' -f1`
    19    f2=`echo $wers | cut -d ':' -f2`
    20    MESSAGE="Witam , konto zalozone login to $f1 , haslo to $f2"
    21    EMAIL=""$f1"@test.tionbk.net"
    22    useradd -d /home/$f1 -m $f1 -p $f2
    23    
    24    
    25    mail -s "$SUBJECT" "$EMAIL" "$MESSAGE"
    26    done
    27    
    28    elif  [ "$kto" = "p" ]  ;
    29    then
    30        echo 'pracownik'
    31        echo "podaj login"
    32        read login
    33        echo "podaj haslo"
    34        read haslo
    35    
    36    useradd -d /home/$login -m $login -p $haslo
    37    
    38    
    39    else
    40        echo ' Zły wybór'
    41    fi

biolkell
Beginner
Posty: 110
Rejestracja: 06 sierpnia 2013, 21:34

Post autor: biolkell »

Poprawiłem trzeba robić to przez plik, podaje skrypt może komuś się przyda:

Kod: Zaznacz cały

     1    #!/bin/bash
     2    
     3    
     4    echo 'Wybierz Student[s] lub Pracownik[p]'
     5    read kto
     6    
     7    if [ $kto = "s" ]  ;
     8    then
     9        #echo 'student automatyczna'
    10    for wers in $(cat lista.txt)
    11    do
    12    
    13    SUBJECT='Konto zalozone'
    14    #EMAIL=""$wers"@test.tionbk.net"
    15    #MESSAGE = 'Witam , konto zalozone login to:$WERS , haslo to "$HASLO"'
    16    
    17    
    18    f1=`echo $wers | cut -d ':' -f1`
    19    f2=`echo $wers | cut -d ':' -f2`
    20    MESSAGE="Witam , konto zalozone login to $f1 , haslo to $f2"
    21    EMAIL=""$f1"@test.tionbk.net"
    22    useradd -d /home/$f1 -m $f1 -p $f2
    23    
    24    echo -e "$MESSAGE" > temp.txt
    25    
    26    mail -s $SUBJECT $EMAIL <temp.txt
    27    done
    28    
    29    elif  [ "$kto" = "p" ]  ;
    30    then
    31        echo 'pracownik'
    32        echo "podaj login"
    33        read login
    34        echo "podaj haslo"
    35        read haslo
    36    
    37    useradd -d /home/$login -m $login -p $haslo
    38    
    39    
    40    else
    41        echo ' Zły wybór'
    42    fi
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2341
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Zamiast tego:

Kod: Zaznacz cały

echo -e "$MESSAGE" > temp.txt
mail -s $SUBJECT $EMAIL <temp.txt
Zrób tak:

Kod: Zaznacz cały

echo -e "$MESSAGE" | mail -s $SUBJECT $EMAIL
ODPOWIEDZ