| Autor | Sõnum | 
| kessu Vana Pingviin
 
  
  
 Vanus: 50
 Liitunud: 16.07.2007
 Postitused: 1106
 
 Distributsioon: Ubuntu 16.04 LTS 64bit
 
  
   |  
 
 
| 
| 
 |  
| Niisiis sisenesin ... või pigem proovisin siseneda Nähtamatusse Ülikooli ... proovisin siis kirjutada scripti. Viki õpetus piltide suurendamiseks. 
 Jõudsin järeldusele, et
 ei muutu kuidagi scriptiks. Kolasin siis veidi ringi ja leidsin piisavalt lihtsa seletuse. Writing shell script. Jõudsin sellise tulemuseni: 	  | Kood: |  	  | for img in `ls *.jpg`
do
 convert -resize 800x600 $img resized-$img
 done
 | 
  	  | Kood: |  	  | #!/bin/bash
#kuradi raisk
 
 echo "for img in `ls *.jpg`
 do
 convert -resize 800x600 $img resized-$img
 done"
 | 
 
 Mis siin valesti on? Küll ütleb, et "bash: ./skript: Permission denied" või tuleb selline tekst
 Mida ma kahe silma vahele jätnud olen? 	  | Kood: |  	  | for img in s7301902.jpg
s7301903.jpg
 s7301904.jpg
 s7301905.jpg
 s7301907.jpg
 s7301908.jpg
 s7301909.jpg
 s7301910.jpg
 do
 convert -resize 800x600  resized-
 done
 
 | 
 |  
|  |  |  |  
| _________________
 Olen umbkeelne mulk ja ei saa võõrastest keeltest piisavalt aru
 
 |  | 
|  |    | 
| mihkel Vana Pingviin
 
  
  
 
 Liitunud: 16.04.2006
 Postitused: 1284
 
 Distributsioon: Fedora/Centos
 
  
   |  
 
 
| 
| 
 |  
| Selline jupp mul töötab: 
 
  	  | Kood: |  	  | 
#!/bin/sh
 
 
 for img in `ls *.jpg`
 do
 convert -resize 800x600 $img resized-$img
 done
 
 | 
 
 Salvestad ta mingi nime all, näiteks pildid.sh ja annad talle käivitamisõigused
 chmod +x pildid.sh
 
 Siis paiguta ta kataloogi, kus on pildid, millede suurust soovid muuta ning toksid käsureale:
 ./pildid.sh
 |  
|  |  |  |  
| 
 
 
 Viimati muutis mihkel 03.10.2008, 08:15; muudetud 1 kord
 |  | 
|  |     | 
| wk Vana Pingviin
 
  
 
 
 Liitunud: 24.10.2007
 Postitused: 1133
 Asukoht: Tallinn, vahel Vastseliina vald
 Distributsioon: Debian, Kubuntu
 
  
   |  
 
 
| 
| 
 |  
| Käivitatavad asjad peavad saama käivitamise õigused, seda saab anda käsurealt 2 moodi: 
  	  | Kood: |  	  | chmod 750 skriptike
chmod ug+x skriptike
 | 
 Numbriline 750 on kolmes osas 7 on faili omaniku õigused, 5 grupi liikme õigused ja 0 kõigi õigused. 7 omakorda saadakse liitmisel 4 + 2 + 1 (lugemisõigus + kirjutamisõigus + käivitamisõigus).
 
 Tähed u ja g tähistavad userit ja gruppi, +x tähistab käivitamisõiguse andmist.
 
 Loodetavasti on sest abi.
 |  
|  |  |  |  
| _________________
 Kõike hääd,
 WK
 
 |  | 
|  |   | 
| Sisyphos Vana Pingviin
 
  
  
 Vanus: 62
 Liitunud: 24.02.2008
 Postitused: 602
 
 Distributsioon: Slackware
 
  
   |  
 
 
| 
| 
 |  
| Proovisin ka seda skripti. Kui nime sees on tühikud siis ta ei tööta. Kui tühikuid ei ole töötab ilusasti. |  
|  |  |  |  
| _________________
 
   
 |  | 
|  |   | 
| kessu Vana Pingviin
 
  
  
 Vanus: 50
 Liitunud: 16.07.2007
 Postitused: 1106
 
 Distributsioon: Ubuntu 16.04 LTS 64bit
 
  
   |  
 
 
| 
| 
 |  
| skript.sh Keeldub täiega tööle minamast. Ei avalda mingit vastupanu, aga ei tee midagi. 	  | Kood: |  	  | #!/bin/sh
#keeldub
 
 echo "for img in `ls *.jpg`
 do
 convert -resize 800x600 $img resized-$img
 done"
 | 
 |  
|  |  |  |  
| _________________
 Olen umbkeelne mulk ja ei saa võõrastest keeltest piisavalt aru
 
 |  | 
|  |    | 
| mihkel Vana Pingviin
 
  
  
 
 Liitunud: 16.04.2006
 Postitused: 1284
 
 Distributsioon: Fedora/Centos
 
  
   |  
 
 
| 
| 
 |  
| Muidugi ta ei tee midagi. 
 echo "blaah"
 
 Kuvab ekraanile kõik selle, mis jutumärkide vahel on. Sinu skriptis ongi kõik vajalik jutumärkide vahel. Ta ei saagi midagi teha
   |  
|  |  |  |  
| 
 
 |  | 
|  |     | 
| kessu Vana Pingviin
 
  
  
 Vanus: 50
 Liitunud: 16.07.2007
 Postitused: 1106
 
 Distributsioon: Ubuntu 16.04 LTS 64bit
 
  
   |  
 
 
| 
| 
 |  
|  	  | mihkel kirjutas: |  	  | Muidugi ta ei tee midagi.
 
echo "blaah"
 
Kuvab ekraanile kõik selle, mis jutumärkide vahel on. Sinu skriptis ongi kõik vajalik jutumärkide vahel. Ta ei saagi midagi teha    | 
 
 Ja ...? On jah jutumärkide vahel. Informatiivsust jääb küll puudu. Mis siin valesti on? Ja mis blaah?
 |  
|  |  |  |  
| _________________
 Olen umbkeelne mulk ja ei saa võõrastest keeltest piisavalt aru
 
 |  | 
|  |    | 
| mihkel Vana Pingviin
 
  
  
 
 Liitunud: 16.04.2006
 Postitused: 1284
 
 Distributsioon: Fedora/Centos
 
  
   |  
 
 
| 
| 
 |  
| echo ongi selline funktsioon, mille eesmärgiks on teksti kuvamine. 
 Kui kuvatav tekst mahub ühele reale, siis jutumärke pole vaja. Nt
 
 
 
 Kui on vaja kasutada mitut rida, siis on jutumärgid ühed üsna kasulikud vidinad. Nt
 
 
  	  | Kood: |  	  | echo "Rida 1
 Rida 2"
 | 
 
 Kuna sina panidki kogu oma skripti kasuliku osa jutumärkide vahele, siis masin saab sellest nii aru, et nad kõik kokku on üks string, mille peab lihtsalt terminali aknasse kuvama.
 
 Või siis midagi sarnast. Üritasin omaarust lihtsalt seletada
   |  
|  |  |  |  
| 
 
 |  | 
|  |     | 
| kessu Vana Pingviin
 
  
  
 Vanus: 50
 Liitunud: 16.07.2007
 Postitused: 1106
 
 Distributsioon: Ubuntu 16.04 LTS 64bit
 
  
   |  
 
 
| 
| 
 |  
| Novot, aga seal pole midagi selgitavat lisatud. Mina panin asja nii kirja nagu ta oli. 
 St: siin pole echo-ga midagi teha? Prooovisin seda igasugust moodi muuta. Aga sain erinevaid lolluse tundemärke: unexpected... syntax error .
 
 Lõpuks sain sellisega mingi tulemuse
  	  | Kood: |  	  | #!/bin/bash
 clear
 echo for img in `ls *.jpg`
 
 convert  *.jpg -resize 800x600 $img  *.jpg resized-$img
 | 
 
 ... kuigi ta tegi mulle kahest pildist 4 resized--0,1,2,3 jpg faili ilma laiendita.
 
 Ega ma nüüd aru küll ei saa, mida ma kokku keerasin.
 |  
|  |  |  |  
| _________________
 Olen umbkeelne mulk ja ei saa võõrastest keeltest piisavalt aru
 
 |  | 
|  |    | 
| Sisyphos Vana Pingviin
 
  
  
 Vanus: 62
 Liitunud: 24.02.2008
 Postitused: 602
 
 Distributsioon: Slackware
 
  
   |  
 
 
| 
| 
 |  
| Mihkel andis ju töötava variandi. Ei saanud tööle ainult selliste failidega tööle, kus tühikud sees. Aga ega miks Kessu seda ei proovi mina ei tea...
 |  
|  |  |  |  
| _________________
 
   
 |  | 
|  |   | 
| kessu Vana Pingviin
 
  
  
 Vanus: 50
 Liitunud: 16.07.2007
 Postitused: 1106
 
 Distributsioon: Ubuntu 16.04 LTS 64bit
 
  
   |  
 
 
| 
| 
 |  
| OOOOOOOttttttt nüüd. Pildi nimi ei tohi olla kahest sõnast koosnev? St. tühikut ei tohi olla ka sõna sees ... aga ta teeb 800X542 mitte 600 |  
|  |  |  |  
| _________________
 Olen umbkeelne mulk ja ei saa võõrastest keeltest piisavalt aru
 
 |  | 
|  |    | 
| Sisyphos Vana Pingviin
 
  
  
 Vanus: 62
 Liitunud: 24.02.2008
 Postitused: 602
 
 Distributsioon: Slackware
 
  
   |  
 
 
| 
| 
 |  
| Kindlasti saab ka tühikuga failinimesid kasutada, aga mina ei oska siin abiks olla. Ei ole veel elus ühtegi skripti kirjutanud   Minul tegi küll 800x600.
 |  
|  |  |  |  
| _________________
 
   
 |  | 
|  |   | 
| wk Vana Pingviin
 
  
 
 
 Liitunud: 24.10.2007
 Postitused: 1133
 Asukoht: Tallinn, vahel Vastseliina vald
 Distributsioon: Debian, Kubuntu
 
  
   |  
 
 
| 
| 
 |  
| Suhteliselt. Sellele skriptile ei meeldi tühikutega failinimed. Miks? Sellepärast, et ajalooliselt on tühik olnud eraldaja ja faili nime loetakse kuni esimese tühikuni. Mulle ka ei meeldi tühikute ja täpitähtedega failinimed. Miks? Sellepärast, et need võivad erinevates situatsioonides tüütuid vigu põhjustada. 	  | Tsitaat: |  	  | Kas on piisav vastus?			 | 
 
 Konstruktiivsemalt, proovi siis nii:
 
  	  | Kood: |  	  | #!/bin/sh
 for img in *.jpg
 do
 convert -resize 800x600 "$img" resized-"$img"
 done
 | 
 |  
|  |  |  |  
| _________________
 Kõike hääd,
 WK
 
 |  | 
|  |   | 
| wk Vana Pingviin
 
  
 
 
 Liitunud: 24.10.2007
 Postitused: 1133
 Asukoht: Tallinn, vahel Vastseliina vald
 Distributsioon: Debian, Kubuntu
 
  
   |  
 
 
| 
| 
 |  
| Elementarno, Uatson. Järelikult oli Sul algne pilt vastavate proportsioonidega. -resize teeb Su pildi nii palju väiksemaks või suuremaks, et selle laius ei ületaks 800 ja kõrgus ei ületaks  600. Kui sel pildid teha kõrgus 600, siis tuleks laiust omakorda suurendada umbes 870 pikslini. Teine variant on pilt proportsioonidest välja venitada, aga seda tuleb siis ka konkreetselt öelda. 	  | Tsitaat: |  	  | aga ta teeb 800X542 mitte 600			 | 
 |  
|  |  |  |  
| _________________
 Kõike hääd,
 WK
 
 |  | 
|  |   | 
| priit Vana Pingviin
 
  
 
 Vanus: 41
 Liitunud: 04.08.2005
 Postitused: 521
 Asukoht: Tartu
 Distributsioon: CentOS / OS X
 
  
   |  
 
 
| 
| 
 |  
| Kui tahad ka tühikutega failinimesid kasutada, siis näeks skript välja selline: 
 
  	  | Kood: |  	  | #!/bin/bash
IFS='
 '
 for img in `ls *.jpg`; do
 convert -resize 800x800 $img resized-$img
 done
 | 
 
 Põhjus, miks resize väärtuseks panin 800x800, on see, et nii töötab ka skript püstiste failide puhul, pikemaks küljeks on alati 800 px. IFS-i kaks rida tegeleb tühikutega.
 |  
|  |  |  |  
| 
 
 |  | 
|  |   | 
| kessu Vana Pingviin
 
  
  
 Vanus: 50
 Liitunud: 16.07.2007
 Postitused: 1106
 
 Distributsioon: Ubuntu 16.04 LTS 64bit
 
  
   |  
 
 
| 
| 
 |  
| Seda mul just vaja oligi, aga ega ma ikka aru saa, et mis asjadega tegi on. Niipalju kui ma olen otsinud ei räägita rohkem kui algse scripti kirjutamisest: "Tere maailm!" ja muud midagi. Eesti keeles pole midagi. Väjamaalased ei kirjuta ka suurt rohkem. |  
|  |  |  |  
| _________________
 Olen umbkeelne mulk ja ei saa võõrastest keeltest piisavalt aru
 
 |  | 
|  |    | 
| mihkel Vana Pingviin
 
  
  
 
 Liitunud: 16.04.2006
 Postitused: 1284
 
 Distributsioon: Fedora/Centos
 
  
   |  | 
|  |     | 
| kessu Vana Pingviin
 
  
  
 Vanus: 50
 Liitunud: 16.07.2007
 Postitused: 1106
 
 Distributsioon: Ubuntu 16.04 LTS 64bit
 
  
   |  
 
 
| 
| 
 |  
|  	  | Kood: |  	  | Shell scripts should be located in your search path and ~/bin should be in your search path.			 | 
 
 Ma saan aru, et siin räägitakse sellest otsinguteest? Mida see endast kujutab? Kusagil kästi enda skriptidele teha eraldi kaust. Aga kuhu see kaust teha, et ma ei peaks seda skripti tõstma ühest kaustast teise?
 |  
|  |  |  |  
| _________________
 Olen umbkeelne mulk ja ei saa võõrastest keeltest piisavalt aru
 
 |  | 
|  |    | 
| Sisyphos Vana Pingviin
 
  
  
 Vanus: 62
 Liitunud: 24.02.2008
 Postitused: 602
 
 Distributsioon: Slackware
 
  
   |  
 
 
| 
| 
 |  
| Otsingutee (PATH) on kohad kust otsitakse programme , mida täita . 	  | kessu kirjutas: |  	  |  	  | Kood: |  	  | Shell scripts should be located in your search path and ~/bin should be in your search path.			 | 
 
Ma saan aru, et siin räägitakse sellest otsinguteest? Mida see endast kujutab?			 | 
 Oma otsinguteed näed nii:
 
 
  	  | kessu kirjutas: |  	  | Kusagil kästi enda skriptidele teha eraldi kaust. Aga kuhu see kaust teha, et ma ei peaks seda skripti tõstma ühest kaustast teise?			 | 
 soovitati ju koju teha  ~/bin
 ja siis tuleks see koht otsinguteele lisada. Selleks lisa oma .bashrc-le rida:
 
  	  | Kood: |  	  | export PATH=$PATH:/home/kessu/bin			 | 
 |  
|  |  |  |  
| _________________
 
   
 |  | 
|  |   | 
| kessu Vana Pingviin
 
  
  
 Vanus: 50
 Liitunud: 16.07.2007
 Postitused: 1106
 
 Distributsioon: Ubuntu 16.04 LTS 64bit
 
  
   |  
 
 
| 
| 
 |  
| Ma tegin seda juba enne. Tegin uuesti, aga ikka: "bash: ./skript: No such file or directory" |  
|  |  |  |  
| _________________
 Olen umbkeelne mulk ja ei saa võõrastest keeltest piisavalt aru
 
 |  | 
|  |    | 
|  |