Strona 1 z 1

skrypt do zmiany hasła

: 30 września 2014, 15:16
autor: biolkell
jak przeczytać plik w którym mam dwie wartości przedzielane np ::
czyli mamy users::haslo
chce wydobyć obie wartości osobno

: 01 października 2014, 10:19
autor: biolkell
ma ktoś jakiś pomysł jak to powinienem ugryź ?

: 01 października 2014, 10:26
autor: f1.micro

Kod: Zaznacz cały

cut -d '::' -f1
cut -d '::' -f2

: 01 października 2014, 13:26
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

: 01 października 2014, 13:34
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)

: 01 października 2014, 13:43
autor: f1.micro
Wyedytowałeś wiadomość kiedy pisałem Ci odpowiedź.

OK:

to inaczej

Kod: Zaznacz cały

zmienna=`echo $wers | cut -d ':' -f1`

: 01 października 2014, 14:35
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


: 01 października 2014, 15:02
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

: 01 października 2014, 15:17
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