Portaal Portaal Pingviini veeb foorumi pealeht
  Viki  |  IRC  |  Otsing  |  Küsimused ja vastused  |  Profiil  |  Privaatsõnumite vaatamiseks logi sisse  | Logi sisse või Registreeru
<empty>
Vaata järgmist teemat
Vaata eelmist teemat

Postita uus teemaVasta teemale
Autor Sõnum
kessu
Vana Pingviin
Vana Pingviin


Vanus: 49
Liitunud: 16.07.2007
Postitused: 1106

Distributsioon: Ubuntu 16.04 LTS 64bit
estonia.gif
postituspostitatud: 02.10.2008, 23:40  postituse pealkiri:  Kessu imelikud juhumised vikis  

Niisiis sisenesin ... või pigem proovisin siseneda Nähtamatusse Ülikooli ... proovisin siis kirjutada scripti. Viki õpetus piltide suurendamiseks.

Jõudsin järeldusele, et
Kood:
for img in `ls *.jpg`
do
  convert -resize 800x600 $img resized-$img
done
ei muutu kuidagi scriptiks. Kolasin siis veidi ringi ja leidsin piisavalt lihtsa seletuse. Writing shell script. Jõudsin sellise tulemuseni:
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
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
Mida ma kahe silma vahele jätnud olen?

_________________
Olen umbkeelne mulk ja ei saa võõrastest keeltest piisavalt aru

mihkel
Vana Pingviin
Vana Pingviin



Liitunud: 16.04.2006
Postitused: 1284

Distributsioon: Fedora/Centos
estonia.gif
postituspostitatud: 03.10.2008, 08:11  postituse pealkiri:  (teema puudub)  

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
Vana Pingviin



Liitunud: 24.10.2007
Postitused: 1133
Asukoht: Tallinn, vahel Vastseliina vald
Distributsioon: Debian, Kubuntu
estonia.gif
postituspostitatud: 03.10.2008, 08:12  postituse pealkiri:  (teema puudub)  

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
Vana Pingviin


Vanus: 61
Liitunud: 24.02.2008
Postitused: 602

Distributsioon: Slackware
estonia.gif
postituspostitatud: 03.10.2008, 08:27  postituse pealkiri:  (teema puudub)  

Proovisin ka seda skripti. Kui nime sees on tühikud siis ta ei tööta. Kui tühikuid ei ole töötab ilusasti.

_________________
Image

kessu
Vana Pingviin
Vana Pingviin


Vanus: 49
Liitunud: 16.07.2007
Postitused: 1106

Distributsioon: Ubuntu 16.04 LTS 64bit
estonia.gif
postituspostitatud: 03.10.2008, 12:00  postituse pealkiri:  (teema puudub)  

skript.sh
Kood:
#!/bin/sh
#keeldub

echo "for img in `ls *.jpg`
do
  convert -resize 800x600 $img resized-$img
done"
Keeldub täiega tööle minamast. Ei avalda mingit vastupanu, aga ei tee midagi.

_________________
Olen umbkeelne mulk ja ei saa võõrastest keeltest piisavalt aru

mihkel
Vana Pingviin
Vana Pingviin



Liitunud: 16.04.2006
Postitused: 1284

Distributsioon: Fedora/Centos
estonia.gif
postituspostitatud: 03.10.2008, 12:16  postituse pealkiri:  (teema puudub)  

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 Razz


kessu
Vana Pingviin
Vana Pingviin


Vanus: 49
Liitunud: 16.07.2007
Postitused: 1106

Distributsioon: Ubuntu 16.04 LTS 64bit
estonia.gif
postituspostitatud: 03.10.2008, 14:07  postituse pealkiri:  (teema puudub)  

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 Razz


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
Vana Pingviin



Liitunud: 16.04.2006
Postitused: 1284

Distributsioon: Fedora/Centos
estonia.gif
postituspostitatud: 03.10.2008, 17:15  postituse pealkiri:  (teema puudub)  

echo ongi selline funktsioon, mille eesmärgiks on teksti kuvamine.

Kui kuvatav tekst mahub ühele reale, siis jutumärke pole vaja. Nt

Kood:
echo Tere


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 Smile


kessu
Vana Pingviin
Vana Pingviin


Vanus: 49
Liitunud: 16.07.2007
Postitused: 1106

Distributsioon: Ubuntu 16.04 LTS 64bit
estonia.gif
postituspostitatud: 03.10.2008, 18:14  postituse pealkiri:  (teema puudub)  

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
Vana Pingviin


Vanus: 61
Liitunud: 24.02.2008
Postitused: 602

Distributsioon: Slackware
estonia.gif
postituspostitatud: 03.10.2008, 18:57  postituse pealkiri:  (teema puudub)  

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...

_________________
Image

kessu
Vana Pingviin
Vana Pingviin


Vanus: 49
Liitunud: 16.07.2007
Postitused: 1106

Distributsioon: Ubuntu 16.04 LTS 64bit
estonia.gif
postituspostitatud: 03.10.2008, 19:57  postituse pealkiri:  (teema puudub)  

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
Vana Pingviin


Vanus: 61
Liitunud: 24.02.2008
Postitused: 602

Distributsioon: Slackware
estonia.gif
postituspostitatud: 03.10.2008, 20:17  postituse pealkiri:  (teema puudub)  

Kindlasti saab ka tühikuga failinimesid kasutada, aga mina ei oska siin abiks olla. Ei ole veel elus ühtegi skripti kirjutanud Embarassed
Minul tegi küll 800x600.

_________________
Image

wk
Vana Pingviin
Vana Pingviin



Liitunud: 24.10.2007
Postitused: 1133
Asukoht: Tallinn, vahel Vastseliina vald
Distributsioon: Debian, Kubuntu
estonia.gif
postituspostitatud: 03.10.2008, 20:19  postituse pealkiri:  (teema puudub)  

Tsitaat:
Kas on piisav vastus?
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.

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
Vana Pingviin



Liitunud: 24.10.2007
Postitused: 1133
Asukoht: Tallinn, vahel Vastseliina vald
Distributsioon: Debian, Kubuntu
estonia.gif
postituspostitatud: 03.10.2008, 20:35  postituse pealkiri:  (teema puudub)  

Tsitaat:
aga ta teeb 800X542 mitte 600
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.

_________________
Kõike hääd,
WK

priit
Vana Pingviin
Vana Pingviin


Vanus: 39
Liitunud: 04.08.2005
Postitused: 521
Asukoht: Tartu
Distributsioon: CentOS / OS X
estonia.gif
postituspostitatud: 03.10.2008, 20:46  postituse pealkiri:  (teema puudub)  

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
Vana Pingviin


Vanus: 49
Liitunud: 16.07.2007
Postitused: 1106

Distributsioon: Ubuntu 16.04 LTS 64bit
estonia.gif
postituspostitatud: 03.10.2008, 21:36  postituse pealkiri:  (teema puudub)  

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
Vana Pingviin



Liitunud: 16.04.2006
Postitused: 1284

Distributsioon: Fedora/Centos
estonia.gif
postituspostitatud: 03.10.2008, 21:50  postituse pealkiri:  (teema puudub)  

Üht-teist ikka leiab. Eesti keeles:
http://kuutorvaja.eenet.ee/wiki/Bash
Ja Inglise keeles:
http://tldp.org/LDP/abs/html/


kessu
Vana Pingviin
Vana Pingviin


Vanus: 49
Liitunud: 16.07.2007
Postitused: 1106

Distributsioon: Ubuntu 16.04 LTS 64bit
estonia.gif
postituspostitatud: 04.10.2008, 14:44  postituse pealkiri:  (teema puudub)  

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
Vana Pingviin


Vanus: 61
Liitunud: 24.02.2008
Postitused: 602

Distributsioon: Slackware
estonia.gif
postituspostitatud: 04.10.2008, 15:05  postituse pealkiri:  (teema puudub)  

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?
Otsingutee (PATH) on kohad kust otsitakse programme , mida täita .
Oma otsinguteed näed nii:
Kood:
echo $PATH

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
Kood:
mkdir ~/bin
ja siis tuleks see koht otsinguteele lisada. Selleks lisa oma .bashrc-le rida:
Kood:
export PATH=$PATH:/home/kessu/bin

_________________
Image

kessu
Vana Pingviin
Vana Pingviin


Vanus: 49
Liitunud: 16.07.2007
Postitused: 1106

Distributsioon: Ubuntu 16.04 LTS 64bit
estonia.gif
postituspostitatud: 04.10.2008, 15:27  postituse pealkiri:  (teema puudub)  

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

Näita (aja järgi):      
Postita uus teemaVasta teemale


Vaata järgmist teemat
Vaata eelmist teemat
Powered by phpBB2 Plus based on phpBB © 2001/7 phpBB Group