Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # komentarite pochvat s # (duuh)
- # sintaksis na if ->
- # if test <uslovie>
- # then
- # statement
- # else
- # statement
- # sintaksis na for ->
- # for each in $list
- # do
- # statement
- # done
- # Pyrvite zadachi sa tip "pravi se na interpretator i napishi output-a". Poslednite 2 sa "reshete zadachata"
- set abc xyz 123 # Setva parametri na sredata
- echo $2 # $n vzema n-tiq parametyr, $ vyobshte vzema/vryshta stoinost na promenliva / izraz
- if test 2 -le $# # test e komanda vryshtata bool, test 2 -le $# == 2 <= $#, $# = broq na parametrite
- then
- shift # shift nalqvo s 1 na parametrite
- echo $* # $* printi vsi4ki parametri
- else
- echo $3
- fi
- set 1 two 3 four
- shift 2
- echo $1 'ok'
- exit # izliza ot procesa
- echo 'END'
- #----------------------------
- # BEZ INTERVALI OKOLO = !!!1!!!EDNO1!
- sum=0 # promenliva, duuh
- num=0
- for each # for vzema spisyk za obhojdane, tuka e propusnat i zatova vzema cl argumentite = parametrite na sredata
- do
- num=$(expr $num + $each) # expr smqta izrazq vdqsno, $ za da vzemem stoinostta na expr
- if !test $num -eq $#
- then
- echo $num
- else
- sum=$(expr $num + 1)
- echo $? # $? vryshta RETURN KODA na poslednata operaciq, v sluchaq 0
- break
- fi
- done
- #-----------------------------
- # neka imame failovete:
- # aaa
- # banana.java
- # bbb.c
- # bear
- # file1.txt
- # flist
- # xtyz
- bfiles=$(ls b*) # ls pokazva failovete v tekushata direktoriq, prilagaiki pattern-a b* t.e. vsi4ko po4vashto s b
- if test -f bear # test -f proverqva dali imeto sled nego e OBIKNOVEN file, OBIKNOVEN e file razlichen ot dir / pipe / link t.e. tova koeto obiknoveno narichanme file
- then rm bear # iztrii bear
- else echo 'Teddy Bear' > bear
- fi
- count=$(ls |wc -l) # polzvame | za pipeline mejdu komandite. Magicheskoto wc priema argument, koito ukazva kvo da prebroi vyv vhoda: -l za lines, -w za words, -c za bytes, -m za symbols
- echo $count # dava 6
- for each in $bfiles # bfiles oshte pazi 3 file (vkl. iztritata mechka)
- do
- echo $each
- ls *.txt # Print vsi4ki .txt files
- while [ $count ! -eq 7] # zabeleji intervalite. Ima i until, koeto cikli dokato uslovieto e false t.e. taq deklaraciq e syshtata kato until [ $count -eq 7]. [izraz] e syshtoto kato test izraz
- do
- echo 'ABCDEF' > abc.txt # Zapishi ABCDEF v abc.txt
- count=$(ls |wc -l) # veche e 7, shtoto gornoto syzdava file abc.txt
- done # izlizame ot while-a i zavyrtame ujasniq for oshte vednyj
- cat abc.txt # printi sydyrjanieto na file-a t.e. ABCDEF
- #-------------------------------
- # Da se napishe programa:
- # 1. izvejda sydyrjanieto na file1.txt, file2.txt, file3.tx:
- cat file1.txt file2.txt file3.txt
- # 2. broq na lognatite useri:
- who | wc -l # who vryshta lognatite useri
- # 3. izvejda vsi4ki redove i nomerata im ot file.txt, sydyrjashti string-a "fstring"
- grep -n 'fstring' file.txt
- # 4. izvejda pyrvite 3 symvola na vseki red v file.txt
- cut -c 0-3 file.txt
- # 5. syzdava direktoriite mp3, jpg. Posle mesti vsichki file-ove s razshirenie .mp3 v papkata mp3 i da kopira vsichki file-ove s razshirenie jpg v papkata jpg
- mkdir mp3
- mkdir jpg
- mv *.mp3 mp3
- cp *.jpg jpg
- #---------------------------------------
- # Da se napishe programa:
- # Pri startirane poluchava 2 potrebitelq ot komanden red
- # Ot standartniq vhod chete ime na file.
- # Dokato potrebitelq podaden kato pyrvi parametyr e lognat, prez minuta se zapisvat imenata na file-ove ot domashnata mu direktoriq v podadeniq file
- # Sled kato potrebitelq izleze ot sistemata, vsi4ki failove s razhsirenie .sh se startirat
- # Sled izpylnenie, da se premahnat pravata na izpylnenie na izpylnenite file-ove
- # Izprashta syobshtenie na 2riq potrebitel "HAHA, FUCK YOU, I JUST EMPTIED YOUR DRIVE" i se iztrivat vsichki negovi file-ove
- sh dumbtask.sh ivanka penka
- read file1 # cheti ot standartniq vhod i pishi v promenlivata
- while who | grep $1 > /dev/null # tyrsi s grep vyv vyrnatoto ot who. prenasochame izhoda v dev/null, za da ne printim na terminala. Ako vsi4ko e nared, grep-a shte vyrne 0 kato kod na zavyrshvane i while shte raboti
- do
- sleep 60 # spi za 60 sekundi
- ls /home/$1 >> file1 # root-a na potrebitelq e /home/ivanka, printim vsi4ko ot direktoriqta i prenasochvame vyv file-a
- done
- # izlezli sme ot while, znachi e logout-nal
- list=$(ls *.sh /home/$1) # vzemame vsi4ki .sh
- for file in $list
- do
- sh $file # puskame file-a
- chmod a-x # mahame mu pravata, a za all (mahni pravata na vsi4ki), - za mahane na prava, x za izpylnenie
- done
- echo "HAHA, FUCK YOU, I JUST EMPTIED YOUR DRIVE" | write $2 # write prashta syobshtenie na potrebitelq
- rm -r /home/$2 # -r flaga znachi da trie rekursivno
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement