Advertisement
NikolaDimitroff

OS, 07.05.2014

May 7th, 2014
315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.51 KB | None | 0 0
  1. # komentarite pochvat s # (duuh)
  2.  
  3. # sintaksis na if ->
  4. # if test <uslovie>
  5. # then
  6. #   statement
  7. # else
  8. #   statement
  9.  
  10. # sintaksis na for ->
  11. # for each in $list
  12. # do
  13. #   statement
  14. # done
  15.  
  16. # Pyrvite zadachi sa tip "pravi se na interpretator i napishi output-a". Poslednite 2 sa "reshete zadachata"
  17.  
  18. set abc xyz 123 # Setva parametri na sredata
  19. echo $2 # $n vzema n-tiq parametyr, $ vyobshte vzema/vryshta stoinost na promenliva / izraz
  20. if test 2 -le $# #  test e komanda vryshtata bool, test 2 -le $# == 2 <= $#, $# = broq na parametrite
  21. then
  22.     shift # shift nalqvo s 1 na parametrite
  23.     echo $* # $* printi vsi4ki parametri
  24. else
  25.     echo $3
  26. fi
  27. set 1 two 3 four
  28. shift 2
  29. echo $1 'ok'
  30. exit # izliza ot procesa
  31. echo 'END'
  32.  
  33. #----------------------------
  34. # BEZ INTERVALI OKOLO = !!!1!!!EDNO1!
  35. sum=0 # promenliva, duuh
  36. num=0
  37. for each # for vzema spisyk za obhojdane, tuka e propusnat i zatova vzema cl argumentite = parametrite na sredata
  38. do
  39.     num=$(expr $num + $each) # expr smqta izrazq vdqsno, $ za da vzemem stoinostta na expr
  40.     if !test $num -eq $#
  41.     then
  42.         echo $num
  43.     else
  44.         sum=$(expr $num + 1)
  45.         echo $? # $? vryshta RETURN KODA na poslednata operaciq, v sluchaq 0
  46.         break
  47.     fi
  48. done
  49.  
  50. #-----------------------------
  51. # neka imame failovete:
  52. # aaa
  53. # banana.java
  54. # bbb.c
  55. # bear
  56. # file1.txt
  57. # flist
  58. # xtyz
  59.  
  60.  
  61. bfiles=$(ls b*) # ls pokazva failovete v tekushata direktoriq, prilagaiki pattern-a b* t.e. vsi4ko po4vashto s b
  62. 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
  63. then rm bear # iztrii bear
  64. else echo 'Teddy Bear' > bear
  65. fi
  66. 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
  67. echo $count # dava 6
  68. for each in $bfiles # bfiles oshte pazi 3 file (vkl. iztritata mechka)
  69. do
  70.     echo $each
  71.     ls *.txt # Print vsi4ki .txt files
  72.     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
  73.     do
  74.         echo 'ABCDEF' > abc.txt # Zapishi ABCDEF v abc.txt
  75.         count=$(ls |wc -l) # veche e 7, shtoto gornoto syzdava file abc.txt
  76.     done # izlizame ot while-a i zavyrtame ujasniq for oshte vednyj
  77. cat abc.txt # printi sydyrjanieto na file-a t.e. ABCDEF
  78.  
  79. #-------------------------------
  80.  
  81. # Da se napishe programa:
  82. # 1. izvejda sydyrjanieto na file1.txt, file2.txt, file3.tx:
  83. cat file1.txt file2.txt file3.txt
  84. # 2. broq na lognatite useri:
  85. who | wc -l # who vryshta lognatite useri
  86. # 3. izvejda vsi4ki redove i nomerata im ot file.txt, sydyrjashti string-a "fstring"
  87. grep -n 'fstring' file.txt
  88. # 4. izvejda pyrvite 3 symvola na vseki red v file.txt
  89. cut -c 0-3 file.txt
  90. # 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
  91. mkdir mp3
  92. mkdir jpg
  93. mv *.mp3 mp3
  94. cp *.jpg jpg
  95.  
  96. #---------------------------------------
  97.  
  98. # Da se napishe programa:
  99. # Pri startirane poluchava 2 potrebitelq ot komanden red
  100. # Ot standartniq vhod chete ime na file.
  101. # Dokato potrebitelq podaden kato pyrvi parametyr e lognat, prez minuta se zapisvat imenata na file-ove ot domashnata mu direktoriq v podadeniq file
  102. # Sled kato potrebitelq izleze ot sistemata, vsi4ki failove s razhsirenie .sh se startirat
  103. # Sled izpylnenie, da se premahnat pravata na izpylnenie na izpylnenite file-ove
  104. # Izprashta syobshtenie na 2riq potrebitel "HAHA, FUCK YOU, I JUST EMPTIED YOUR DRIVE" i se iztrivat vsichki negovi file-ove
  105.  
  106. sh dumbtask.sh ivanka penka
  107. read file1 # cheti ot standartniq vhod i pishi v promenlivata
  108. 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
  109. do
  110.     sleep 60 # spi za 60 sekundi
  111.     ls /home/$1 >> file1 # root-a na potrebitelq e /home/ivanka, printim vsi4ko ot direktoriqta i prenasochvame vyv file-a
  112. done
  113. # izlezli sme ot while, znachi e logout-nal
  114. list=$(ls *.sh /home/$1) # vzemame vsi4ki .sh
  115. for file in $list
  116. do
  117.     sh $file # puskame file-a
  118.     chmod a-x  # mahame mu pravata, a za all (mahni pravata na vsi4ki), - za mahane na prava, x za izpylnenie
  119. done
  120. echo "HAHA, FUCK YOU, I JUST EMPTIED YOUR DRIVE" | write $2 # write prashta syobshtenie na potrebitelq
  121. rm -r /home/$2 # -r flaga znachi da trie rekursivno
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement