skrypt do zmiany has
skrypt do zmiany hasła
jak przeczytać plik w którym mam dwie wartości przedzielane np ::
czyli mamy users::haslo
chce wydobyć obie wartości osobno
czyli mamy users::haslo
chce wydobyć obie wartości osobno
Kod: Zaznacz cały
cut -d '::' -f1
cut -d '::' -f2
Robie tak ze zamiast pliku wskazuje na zmienną i mam błąd
kod z błędem
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
Kod: Zaznacz cały
$PLIK=/sciezka/do/pliku
zmienna=`cut -d ':' -f1 $PLIK`
Wyedytowałeś wiadomość kiedy pisałem Ci odpowiedź.
OK:
to inaczej
OK:
to inaczej
Kod: Zaznacz cały
zmienna=`echo $wers | cut -d ':' -f1`
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
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
- LordRuthwen
- Moderator
- Posty: 2341
- Rejestracja: 18 września 2009, 21:45
- Lokalizacja: klikash?
Zamiast tego:
Zrób tak:
Kod: Zaznacz cały
echo -e "$MESSAGE" > temp.txt
mail -s $SUBJECT $EMAIL <temp.txt
Kod: Zaznacz cały
echo -e "$MESSAGE" | mail -s $SUBJECT $EMAIL