Bash - wczytywanie z pliku tekstowego do zmiennych

Odpowiedz Nowy wątek
2011-08-28 18:28
0

Witam serdecznie.
Uczę się basha i potrzebuje pomocy w wczytywaniu z pliku tekstowego, jakiegoś wyrazu i zapisywaniu go w zmiennych.
Przykład:
Plik .txt w którym znajduje się:
"Michał Nowak 02-09-1970
Andrzej Kowalski 01-05-2005"
I chodzi mi to aby wczytać Imie do zmiennej $imie, na której później będę wykonywać operacje, to samo z $nazwisko i $date.
Zrobiłem program, który działa poprawnie, poza wczytywaniem z pliku tekstowego (umieszczam dane za pomocą READ)
*Mam jeszcze pytanie, czy po pobraniu danych do zmiennych i dodaniu jednego z użytkowników, jeżeli program będzie kontynuował i dodawał następnego użytkownika, to czy muszę w jakiś sposób wyczyścić te zmienne, czy dane z nich zostaną po prostu zamienione nowymi ?

Poniżej umieszczam kod, i liczę na waszą pomoc.

#!/bin/bash
while [ "$znak" != 'nie' ]
do
echo "Ile chcesz dodac uzytkownikow? "
read liczba
for ((i=0;i<liczba;i++))
do
unpolish(){
       sed '
               s/ą/a/g ; s/Ą/A/g
               s/ć/c/g ; s/Ć/C/g
               s/ę/e/g ; s/Ę/E/g
               s/ł/l/g ; s/Ł/L/g
               s/ń/n/g ; s/Ń/N/g
               s/ó/o/g ; s/Ó/O/g
               s/ś/s/g ; s/Ś/S/g
               s/ź/z/g ; s/Ź/Z/g
               s/ż/z/g ; s/Ż/Z/g
               s/ /_/g
                s/-/_/g
       ' | tr -s [:upper:] [:lower:]
}
echo "Wpisz imie: "
read imie
imie=` echo  $imie | unpolish `
echo "Wpisz nazwisko: "
read nazwisko
nazwisko=` echo $nazwisko | unpolish `
echo "Wpisz date urodzenia (dd-mm-rrrr): "
read data
echo $imie2
EXCLAIM=$data
user=$nazwisko${EXCLAIM:8:9}
 
dzien=${EXCLAIM:0:2}
miesiac=${EXCLAIM:3:2}
rok=${EXCLAIM:6:9}
EXCLAIM2=$imie
imie2=${EXCLAIM2:0:1}
EXCLAIM3=$nazwisko
nazwisko2=${EXCLAIM3:0:1}
password=$imie2$nazwisko2$dzien$miesiac$rok
password=` openssl passwd -1 $password `
useradd -p $password $user
done
echo "Czy chcesz dodac jeszcze uzytkownika? (tak/nie)"
read znak
done

Pozostało 580 znaków

2011-08-29 14:05
0

Czytanie z pliku tekstowego? Najszybciej 'zmienna='"$(cat plik)"''. dodam jeszcze, ze twoj kod jest okropny i polecałbym przepisanie go od nowa lub w innym języku (python).

Mam jeszcze pytanie, czy po pobraniu danych do zmiennych i dodaniu jednego z użytkowników, jeżeli program będzie kontynuował i dodawał następnego użytkownika, to czy muszę w jakiś sposób wyczyścić te zmienne, czy dane z nich zostaną po prostu zamienione nowymi ?

nie, nie musisz.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0