shell script tesztelo webapp

Hozzászólások

kár hogy már mind ismerem és ügyelek ezekre a buktatókra.
régebben biztos használtam volna.

~~~~~~~~
deb http://deb.uucp.hu/ wheezy yazzy repack

sub++

TY!

--
A gyors gondolat többet ér, mint a gyors mozdulat.

töcik
--
Fight / For The Freedom / Fighting With Steel

Diszlexiás lusta embereknek való.
Valószínűleg a 4-5000 soros programjaimmal abszolúte semmit sem tudna kezdeni.
Ott van az n, v és x opció. No, meg a man.
Miazhogy csak bash?!
Soros terminálon nem fut a webapp.

Hirtelen csak ezek a pozitívumok jutottak eszembe. ;)

"Valószínűleg a 4-5000 soros programjaimmal abszolúte semmit sem tudna kezdeni."

mert?

" Ott van az n, v és x opció. No, meg a man."

target közönség láthatólag a beginners, "It's mainly focused on handling typical beginner and intermediate level syntax errors and pitfalls where the shell just gives a cryptic error message or strange behavior" -- a végére azért felhívnám a figyelmed. Illetve lehet, hogy mondjuk a bash manja sokkal jobb mint bármi másé (persze hogy nem), de manból az ilyesmi pont nem derül ki triviálisan.

" Miazhogy csak bash?!"

nem csak bash, nézi a shebangot. A példában konrkértan van olyan, hogy bakker, sh-t mondtál, és echo flaget használsz.

" Soros terminálon nem fut a webapp."

hálistennek le lehet tölteni, akkor van shell frontendje (sőt, valami olyat is gyárt, amivel értelmesebb editorok tudják integrálni)

--

Ettől még lehet szar az egész, de ezek most kb mellémentek (fogalam nem volt mi ez, a fenti izék a weboldal kettő percnyi megtekintéséből derültek ki, lásd még lustaság ;) )

No, ez a lustaság mellbevágott! Nehéz elviselni az igaz kritikát. ;)

Tehét beraktam egy 4800 soros scriptet.
Az eredmény: 2326 comments :)))
A tabulást kiszedtem, így jobban befér.

A legegyszerűbb:

print debug stopped $(CreateMarker) >&2
SC2046 Quote this to prevent word splitting.
- Biztosan rossz az ángolom! A CreateMarker-t kellene megvédeni? Mert az egy függvény. Vagy a visszatérési értéket? Az meg itt speciel 1db string. És mi van, ha pont úgy írtam meg, hogy 5db stringet ad vissza, és ezeket így is szeretném használni. Megannyi kérdés!

SetParam $File.filename $(Cygpath $(InsertTimestamp $(GetParam $FILEPATH $SYSTEM)/$(GetParam $FILENAME.$File $SYSTEM) $(GetParam $TIMESTAMP.$File $SYSTEM)))
SC2086 Double quote to prevent globbing and word splitting.
SC2046 Quote this to prevent word splitting.
SC2046 Quote this to prevent word splitting.
SC2046 Quote this to prevent word splitting.
SC2086 Double quote to prevent globbing and word splitting.
SC2086 Double quote to prevent globbing and word splitting.
SC2046 Quote this to prevent word splitting.
SC2153 Possible misspelling: FILENAME may not be assigned, but Filename is.
SC2086 Double quote to prevent globbing and word splitting.
SC2086 Double quote to prevent globbing and word splitting.
SC2086 Double quote to prevent globbing and word splitting.
SC2046 Quote this to prevent word splitting.
SC2086 Double quote to prevent globbing and word splitting.
SC2086 Double quote to prevent globbing and word splitting.
SC2086 Double quote to prevent globbing and word splitting.
- Ez biztos így van.
- FILENAME, FILEPATH, TIMESTAMP ugyanúgy task és adattípus fügvényében dinamikusan deklarált változó. Jó, jó nem veszi észre. De miért csak egyet a harmincból?

ARCHINPUT=$AREA/$AREAFILE
SC2034 ARCHINPUT appears unused. Verify it or export it.
- Érdekes. Ezért van a "set -a". De ugyanez 5 sorral feljebb meg miért nem hiba???

DAILY_STARTUP=$(GetParam $DAILY $SYSTEM)
SC2034 DAILY_STARTUP appears unused. Verify it or export it.
- Jajjdehogyisnem used! Csak éppenhogy exportálva van, azért nem látod!

if [ $(ExitCode) -eq $FALSE ]
SC2046 Quote this to prevent word splitting.
- Úgybizony! Integer meg a word splitting.

Vegyük észre, hogy a shell nem egy típusos nyelv! Emiatt óvatosan kell használni! Ilyenhez szintaktikai ellenőrzést igen nehéz készíteni. Általában sztringek összerakása és szétszedése a feleadat, de nem árt, ha az adatok milyenségével is tisztában vagy.

Szóval a véleményem: nem csak használhatatlan, hanem félrevezető is.

Mint mondtam, ettől még lehet szar :) (mondjuk a verify it or export itet, valamennyire akár meg is tudnám védeni az appears unuseddel :))

Neked nyilván nem hasznos, ha a shell alapjaival tisztában vagy, de lássuk be, random javaprogramozónak azért hasznos lehet, mikor kénytelen írni valami shellt, mert mégiscsak futtatni kell a vackát valahol.

Nem tudom, ez most ironikus volt-e, de a valóságban tényleg az van, hogy a platformot nem ismerőknek kell valamit írni. És azért lássuk be, hogy a shell azért sok szempontból sajtreszelő feeling, nem baj, ha van eszköz, ami felhívja az ilyesmire a figyelmet

Kedvencem ilyen java környékéről a glassfish, amihez jár initscript. kb /bin/mittomén >/dev/null 2>&1 & van benne. Igaz ugyan, hogy ha keystorehoz kell passwordöt megadni (ami azért nem ritka eset imho egy webframewörknél) akkor lesz egy látszólag futó java, ami ugyan várna az stdinen egy jelszót, amit ki is írt volna, de így, hogy kuss és menjháttérbe.... :) Mondjuk tény, azellen nem véd.

Úgy értem: értettem, egyetértek. Komolyan, így a véleményedre nem volt szmájli.
A java titánokra lehetne szmájli, de inkább sírós-anyázós. A "platformot nem ismerőknek" - jól hangzik. Egy szerveralkalmazás inditásánál mit keres egy huszadrangú programozó, aki az esetek 99 százalékában a saját munkaeszközéhez is hülye.

Egyik esetben szóltam, hogy nem jó a query string. - Dehogyisnem! A sztenderd-java-http így csinálja. Hogymivan?! Aszittem az rfc a sztenderd és nem a java. :) Gugli a barátunk: ennek a sztenderd izének van egy init() szerű izéje, amit illik meghívni. Aztán működik rfc-szerűen is. De miért kell nekem dolgozni a mások munkájának elvégzéséhez?!

Persze ennél akadnak jobb szakemberek is. Mégis egyetlen script sorra rápillantva látom, hogy bizonytalanul használja.

A java környezet lenagyobb aranyköpése egy IBM-es kollégától származik: "Az IBM még nem tudott olyan processzort gyártani, amely megfelelő performanciával futtatná a javát." És ez sajnos megint nem vicc! Ezért futtatják grafikus adapteren. Végülis, egy mercivel is lehet trágyát szállítani... ;)

Igen, ezt én is nagy szerencsének tartom. ;)
Ugyan nem ismerem a ZoL vezető fejlesztőjét. Igaz, ő sem engem.
Mindössze a több mint 20 éves shell programozói és adatfeldolgozási, több mint 30 éves vezérlési tapasztalatom alapján mások gondolják úgy, hogy expert vagyok.
Biztosan ők tévednek.

Bocsánatot kérek, hogy belekontárkodtam a blogodba, és ellentmondtam bármiben is!
A blogodba (magyarul tán "internetes napló"), amelybe egy büdös betűt nem sikerült leírnod.
Elnézést, hogy nem építő jelleggel - többek számára érthetetlen módon - aképp vélekedek, hogy még kezdőknek sem szabad ilyen eszközt a kezébe venni. Ehelyett el lehet olvasni a dokumentációt is.

Azt különösen bánom, hogy - akár látatlanban - fikáztam egy olyan eszközt, amelyhez hasonlót már többet kipróbáltam. A fentiek ellenére mindössze azért kontárkodtam erre, mert jómagam is néha oktatok. Méghozzá csak az elemi dolgokat, kezdőknek. No, most, hogy mégis igazam lett, különösen nem fogom tanácsolni senkinek a használatát!

Mindenesetre a saját blogodban megtudtam milyen bunkó vagyok.
Viszont a saját blogodban elfelejtetted leírni a behelyezett link mögötti tartalomról a véleményedet.
Ez olyan furi.
Bár ezt a kifejezést még Tommy Lee Jones is utálja. :(

Engedd meg, hogy beidezzem a felemelo irasodat:

> Diszlexiás lusta embereknek való.

Problemad van a diszlexiasokkal? Esetleg a lustakkal? A masodik talan ertheto, de nem ertem, miert kellett idehozni a diszlexiasokat? Erzed, mennyire tuskonak kell ehhez lenni?

> Valószínűleg a 4-5000 soros programjaimmal abszolúte semmit sem tudna kezdeni.

Nem fejtetted ki a mondanivalod lenyegi reszet, ezert kerdezek: es akkor mivan?

> Ott van az n, v és x opció. No, meg a man.

Kinek ez, kinek az. Hadd valassza meg mindenki, mit hasznal.

> Miazhogy csak bash?!

Ebben reszben egyetertunk, konkretabnan bash script tesztelonek kellene irni.
Bar en meg sem neztem, h valoban csak bash-t kezel.

> Soros terminálon nem fut a webapp.

Mint az elobb: es akkor mivan?

Le szabad irni a velemenyt, arra valo a forum. Minden ertelmes ember szivesen veszi az epito kritikat. Viszont a te irasodrol sut, h fennhejazni, kerkedni, kotekedni akarsz majdnem cel nelkul. Az egyetlen, amit ki lehet olvasni az volt, hogy te vagy a faszagyerek, te mondod meg a tutit.

> Viszont a saját blogodban elfelejtetted leírni a behelyezett link mögötti tartalomról a véleményedet.

Nincs.
Neha belinkelek ide hasznosnak velt dolgokat tobb kevesebb ismerteto kommenttel kiserve. Akit erdekel tovabblep ra. Eddig azt hittem, igy mukodik az internet.
Akit nem erdekel elkattint, neked nem sikerul:)

En partolnam, h lehessen blacklistre rakni tagokat, akkor nem kellene latnod a jobb oldali dobozban, de sajnos nem igy van. Kampanyolj trey-nel.

Sosem értettem ezt a "for i in $(ls *mp3)" stílusú kódot. Ha már egyszer ismerjük a *.mp3 kifejezést, akkor mi a bánatért nem sokkal természetesebb a "for i in *.mp3" forma helyből?

??? Szerintem *x alatt ez igaz (a shell dolgozza fel a wildcardot, az applikáció már a kifejtett eredményt kapja meg), és doson pont ellenkezőleg, az alkalmazás felelőssége, hogy csinál valamit a wildcarddal, vagy nem.
De mondjuk nem értem, hogy ez miért válasz a felvetésemre, hogy szerintem *x alatt nem sok értelme van a parancshelyettesítős formának a normál wilcard helyett. (Főleg mert mintha doson/windowson nem lenne a parancshelyettesítés - de ez mondjuk nagyon régi és nagyon halvány emlék.)

Hát ha *x alatt azt mondod, h git add *.java, azt garantáltan a shell fogja feldolgozni, azaz valamilyen módon el kell takarnod a *-ot (kivéve, ha nincs az aktuális könyvtárban egyáltalán semmilyen.java, mert ebben az esetben a shellek zöme odaadja a mintát az applikációnak). De pl. a find is ismeri a joker-karaktereket, meg van még néhány alkalmazás. És nyilván le lehet kódolni - pont ahogy a shellben is lekódolták a globbingot valahogy.

Valóban, az a trükk hogy a shell odaadja ha az adott könyvtárban semmi nem illeszkedik rá.


$ ls
App.java  foo
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   foo/bar.java

no changes added to commit (use "git add" and/or "git commit -a")
$ git add *.java
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   foo/bar.java

no changes added to commit (use "git add" and/or "git commit -a")
$ cd ..
$ ls
src
$ git add *.java
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   src/foo/bar.java

idézet magamtól: "ebben az esetben a shellek zöme odaadja a mintát az applikációnak" - felhívom a figyelmet a zöme szócskára. Ennyit a féligazságról. Igen, bash esetén rá lehet venni pl arra, hogy lenyelje a feloldhatatlan globbingot. Más shell meg hibát generál. (Lásd pl. unset nonomatch , C-shellnél.) De ez totál offtopic.