Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2007-03-19 08:45:29

  szczypior88 - Członek DUG

szczypior88
Członek DUG
Skąd: Poznań
Zarejestrowany: 2007-02-06
Serwis

skrypt bash generujący plik

chciałbym, żeby skrypt który wygląda np.tak:

Kod:

#!/bin/bash
echo podaj zmienną 1
read zmienna1
echo podaj zmienną 2
read zmienna2
echo podaj zmienną 3
read zmienna3
...

wygenerował plik, który na początku będzie miał zawarte:

Kod:

#!/bin/bash
#zmienne
1=zmienna1
2=zmienna2
3=zmienna3
...
#tutaj dalsza część skryptu istniejąca wcześniej/importowana z innego pliku pliku

jak takie cudo stworzyć?


http://www.szczypior88.republika.pl/cwp.gif
pozdrawiam
szczypior

Offline

 

#2  2007-03-19 09:15:39

  liare - Użytkownik

liare
Użytkownik
Zarejestrowany: 2005-09-06

Re: skrypt bash generujący plik

echo "Zmienna1=$zmienna1" > plik
echo "Zmienna2=$zmienna2" >> plik

itp

Numerek zmiennej mozesz sobie generowac np:

LICZNIK=1

LICZNIK=$(($LICZNIK+1))


liare
JID: liare@jabberpl.org
      liare@jabber.dug.net.pl

Offline

 

#3  2007-03-19 14:42:15

  szczypior88 - Członek DUG

szczypior88
Członek DUG
Skąd: Poznań
Zarejestrowany: 2007-02-06
Serwis

Re: skrypt bash generujący plik

echo "Zmienna1=$zmienna1" > plik
echo "Zmienna2=$zmienna2" >> plik

tyko że ja bym chciał, żeby te zmienne były wpisywane w pliku pomiędzy

Kod:

#!/bin/bash

a resztą kodu, który te zmienne ma pobierać do swojego działania... a w tej sytuacji zmienne są dopisywane na koniec pliku.


http://www.szczypior88.republika.pl/cwp.gif
pozdrawiam
szczypior

Offline

 

#4  2007-03-19 14:50:32

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: skrypt bash generujący plik

możesz rozbić skrypt na dwa pliki, jeden ze zmiennymi i drugi właściwy, do którego będziesz wczytywał ten ze zmiennymi za pomocą

Kod:

`cat zmienne`

Kod:

echo "Zmienna1=$zmienna1" > zmienne
echo "Zmienna2=$zmienna2" >> zmienne

Kod:

#!/bin/bash

`cat zmienne`

kod kod
kod kod kod
kod

Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

#5  2007-03-19 15:15:57

  szczypior88 - Członek DUG

szczypior88
Członek DUG
Skąd: Poznań
Zarejestrowany: 2007-02-06
Serwis

Re: skrypt bash generujący plik

zawartość pliku zmienne:

Kod:

Zmienna1=1
Zmienna2=2
Zmienna3=3

wynik skryptu o kodzie:

Kod:

#!/bin/bash
`cat zmienne`
echo "zmienna jeden to $Zmienna1, zmienna dwa to $Zmienna2, zmienna trzy to $Zmienna3"

wygląda tak:

Kod:

grzesiek@laptop:~/skrypty$ sh wynik
wynik: line 3: Zmienna1=1: command not found
zmienna jeden to , zmienna dwa to , zmienna trzy to

http://www.szczypior88.republika.pl/cwp.gif
pozdrawiam
szczypior

Offline

 

#6  2007-03-19 15:46:19

  zielkam - były zielony_83 :)

zielkam
były zielony_83 :)
Skąd: Zawiercie
Zarejestrowany: 2006-05-06
Serwis

Re: skrypt bash generujący plik

wynik=

Kod:

zmienna1=`cat zmienne | grep liczba1| cut -d = -f2`
echo $zmienna1

Tak będzie działać

zmienne=

Kod:

liczba1=x
liczba2=y

w wynik dla każdej liczby z pliku zmienne tworzysz oddzielną zmienną


Zostałeś zarejestrowany jako użytkownik #416423 przez.. :mrgreen:
##
FluxboxPL | Mój Lepszy Świat | UnixyPL | Telenia VOIP dla ISP
JID: zielony@jabster.pl

Offline

 

#7  2007-03-19 16:04:17

  czadman - Bicycle repairman

czadman
Bicycle repairman
Skąd: Wrocław
Zarejestrowany: 2005-07-08

Re: skrypt bash generujący plik

Może coś takiego:

Kod:

#!/bin/sh
PLIK=bb.sh
echo "podaj zmienna2"
read zmienna1
echo "podaj zmienna2"
read zmienna2
cat << EOF > $PLIK
#!/bin/sh
zmienna1=$zmienna1
zmienna2=$zmienna2
. /katalog/do/wlaczony_plik
EOF

http://www.debian.org/logos/openlogo-nd-50.png

Offline

 

#8  2007-03-21 18:38:40

  szczypior88 - Członek DUG

szczypior88
Członek DUG
Skąd: Poznań
Zarejestrowany: 2007-02-06
Serwis

Re: skrypt bash generujący plik

metoda zaproponowana przez zielonego działa znakomicie :)

pojawił się jednak dziwny problem... polecenie:

Kod:

tar -cf /home/grzesiek/temp.tar /media/hda1/Program Files/STREAM soft/Ala/Kopia*

kończy się poprawnie utworzeniem archiwum z danymi. ale kiedy chcę pokombinować z importowaniem zmiennych i uruchamiam skrypt:

Kod:

#!/bin/bash
foldery=`cat zmienne | grep Foldery| cut -d = -f2`
tar -cf /home/grzesiek/temp.tar $foldery

gdzie plik zmienne wygląda tak:

Kod:

Foldery=/media/hda1/Program Files/STREAM soft/Ala/Kopia*

to wywala mi:

Kod:

tar: Usunięcie początkowego `/' z nazw plików
tar: /media/hda1/Program\: Nie można stat: Nie ma takiego pliku ani katalogu
tar: Files/STREAM\: Nie można stat: Nie ma takiego pliku ani katalogu
tar: soft/Ala/Kopia*: Nie można stat: Nie ma takiego pliku ani katalogu
tar: Zakończenie z błędem z powodu uprzednich błędów

choć na mój chłopski rozum jedno z drugim jest równoważne...


http://www.szczypior88.republika.pl/cwp.gif
pozdrawiam
szczypior

Offline

 

#9  2007-04-03 22:10:34

  szczypior88 - Członek DUG

szczypior88
Członek DUG
Skąd: Poznań
Zarejestrowany: 2007-02-06
Serwis

Re: skrypt bash generujący plik

ok, pomogli mi na innym forum :) musi być:

Kod:

#!/bin/bash
folder1=`cat zmienne | grep Folder1| cut -d = -f2` 
folder2=`cat zmienne | grep Folder2| cut -d = -f2` 
tar -cf /home/grzesiek/temp.tar "$folder1" "$folder2"

gdzie plik zmienne wygląda:

Kod:

Folder1=sciezka 1
Folder2=sciezka 2

teraz pojawił mi się nowy problem :P w związku z tym, że każda ścieżka w pliku zmienne musi mieć przypisaną swoją zmienną a ja za każdym razem kiedy uruchamiam skrypt nie wiem ile tych ścieżek będzie. więc wymyśliłem sobie takie coś:

Kod:

echo ile folderow
read ile

echo podaj folder nr1
read 1

for x in $1
do
    echo zmienna1=$x >> zmienne
done

tylko nie wiem co zrobić, żeby w zależności od wartości zmiennej $ile pętla powtarzała się zmianiając cyfrę 1 na kolejne liczby...


EDIT: ok, już się udało, sorry za zamieszanie. jest:

Kod:

echo ile
read ile

x=1;
until [ $x -ge $ile ]; do
echo podaj folder $x
read folder
echo folder$x=$folder >> zmienne2
x=$[x + 1]
done

http://www.szczypior88.republika.pl/cwp.gif
pozdrawiam
szczypior

Offline

 

#10  2007-04-04 00:06:14

  czadman - Bicycle repairman

czadman
Bicycle repairman
Skąd: Wrocław
Zarejestrowany: 2005-07-08

Re: skrypt bash generujący plik

Nie prościej będzie:

Kod:

folder=a
until [ ! $folder ];
do
    let "x++"
    echo podaj folder $x
    read folder
    if [ $folder ];then echo $folder >> zmienne2;fi
done
let "x--"
echo "wprowadziles $x folderów"

i dalej

Kod:

#!/bin/bash
tar -cf /home/grzesiek/temp.tar `cat zmienne2`

?
Skoro nie wiesz ile tych ścieżek będzie to po co podajesz ich ilość? :)


http://www.debian.org/logos/openlogo-nd-50.png

Offline

 

#11  2007-04-04 00:18:00

  szczypior88 - Członek DUG

szczypior88
Członek DUG
Skąd: Poznań
Zarejestrowany: 2007-02-06
Serwis

Re: skrypt bash generujący plik

Nie prościej będzie:

nie mam pojęcia :P nie znam się prawie w ogóle na bashu. to co umiem/rozumiem pochodzi z kilku stron internetowych... ale mam zamiar się uczyć :D

Skoro nie wiesz ile tych ścieżek będzie to po co podajesz ich ilość? :)

nie wiem w sensie, że za każdym razem zmienna $ile może mieć różną wartość.

ale może powiem o co mi w ogóle chodzi :P
z różnych względów muszę mieć Windowsa98, a że on się często sypie postanowiłem zrobić sobie płytkę na wzór takiej co dają do laptopów niektórych - wkładasz i masz nowy, nie śmigany system na HDD. więc znalazłem (na dugu z resztą :) ) stronkę: http://www.sysresccd.org/Sysresccd-manual-en_How_to … ystemRescueCd.

udało mi się napisać prosty skrypt, który pytał się czy na pewno chcę odtworzyć system, robił backup odpowiednich danych, odtwarzał system, dane wrzucał z powrotem. no ale stwierdziłem, że może uda mi się coś bardziej zaawansowanego stworzyć :D więc postanowiłem zrobić m.in. opcję, która spowoduje że idę do kogoś, wkładam ten mój "CustomRescueCD" wybieram odpowiednią opcję skryptu, i:
-określam której partycji samoodtwarzalny obraz chcę stworzyć
-na jakiej partycji ten obraz zrobić
-które foldery mają być zabezpieczane podczas odtwarzania

i właśnie ten ostatni podpunkt jest przyczyną tego wątku :) mam nadzieję że za bardzo nie namieszałem :P

więc jeśli ktoś jeszcze ma jakieś pomysły co do kodu/opcji przydatnych na takiej płytce, to z chęcią się dowiem jakie to pomysły :)


http://www.szczypior88.republika.pl/cwp.gif
pozdrawiam
szczypior

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)