Szkriptek: Python, Perl, Bash, ...

Feledékeny bash?

Van egy szkriptem, ami hol az elvárt módon működik, hol nem (többnyire nem).
Nagyjából így néz ki:

mkdir=/bin/mkdir
tempsubmappa=`$mktemp -d`
probix=1
while [[ $probix -le 4 ]]; do
  echo "$$: parancs: $mkdir $tempsubmappa/$probix" >> $dojoblog
  $mkdir "$tempsubmappa/$probix"
# Itt pár perces kódolási munka van, közben a cron a szkript
# egy másik példányát is elindítja, de az észreveszi
# hogy nincs egyedül, és kilép (csak az első példány
# fut tovább)
let "probix = $probix + 1"
done
echo "$$: Parancs: $mkdir $tempsubmappa/sub" >> $$dojoblog
$mkdir "$tempsubmappa/sub"

Most bekukkantottam a $dojoblog logfájlba, és érdekes dolgot találtam, ez van benne:
8873: parancs: /bin/mkdir /tmp/tmp.PLePKZ8907/1
8873: parancs: /bin/mkdir /tmp/tmp.PLePKZ8907/2
8873: parancs: /bin/mkdir /tmp/tmp.PLePKZ8907/3
8873: parancs: /bin/mkdir /tmp/tmp.PLePKZ8907/4
8873: parancs: /tmp/tmp.PLePKZ8907/sub

Azaz, úgy tűnik, hogy a ciklus belsejében még benne volt a $mkdir változóban a "/bin/mkdir" érték, a ciklus után meg a változó üres volt, ezért a /tmp/tmp.PLePKZ8907/sub mappa nem lett létrehozva, és a szkript "dugába dőlt".

Hogy lehet az, hogy a $mkdir változó, ami a szkript elején értéket kapott, egyszer csak kiürült?

Lehet ez összefüggésben azzal, hogy a szkript futása közben a cron a szkript egy másik példányát is indította (de az magától kilépett, mert egyszerre csak egy példányban futhat)?
Mintha azt venném észre, hogy akkor nincs gond, ha a szkript elég gyorsan lefut ahhoz, hogy időközben nem indul második példánya (azaz a kódolási munka elég hamar lefut).
De miért csak a $mkdir változót érinti ez a probléma? A szkript más változói látszólag "sose ürülnek ki"!

Tudtok valami magyarázatot erre?

Python + pxPython + CORBA linuxon

Hello mindenki!

Egy érdekes problémám van, de nem jövök rá a megoldásta, hátha valaki tud segíteni.

Pythonban írok egy egyszerű corba-s grafikus felületű progit.
A grafikus felülethez wxPython-t, a corba-hoz pyORB-ot használok.

A probléma az, hogy az orb nem megy együtt a wx-el.

Ha elindul a felület és utána az orb, akkor a felület az első esemény után teljesen meghal, ki kell lőni a progit.

Ha előbb az orb-ot indítom a felület már be sem jön.

Az orb objektum természetesen külön szálban fut.

Próbáltam suse10-en és Fedora Core 5-ön de ugyan az a hiba.

Tud valaki segíteni? Csinált már valaki ilyet?

Szöveg törlése. Sed, awk, bash?

Pár (tíz)ezer html fájlt meg kellene dolgoznom úgy, hogy töröljek belőlük egy szövegblokkot.

A törlendő szövegblokk
- többsoros,
- ugyanazzal a kezdő mintázattal indul, de nem szükségszerűen sor elején
- ugyanazzal a záró mintázattal végződik, szintén nem feltétlenül sor végén

Van erre valami egyszerű és frappáns sed/awk parancs, vagy egy bash szkriptet kellene összekalapálnom rá?

bash ls tetszoleges konyvtarlista minden elemere

Azzal gorcsolok, hogy van egy DVD-nyi MP3, konyvtarakba rendezve. Minthogy kulonbozo helyekrol szarmaznak, egy resze ekezetes filenevet tartalmaz, sok helyen van szokoz a file neveben. Szeretnem egysegesiteni, ekezetes karakterek ekezetnelkulire, szokozok alahuzasjelre.
Az alabbi modokon probalkoztam:
#/bin/sh
for i in "`ls -1 -A`"
do
j=`echo $i | tr [áéíűő\ ] [őaei\_]`
mv $i $j
done

Aztan elmaradt a for, lett helyette "find *" majd "echo *" , de tokmindegy micsinaltam, akar "for" volt "ls"-sel, akar "find" vayg "echo", ha nem volt benne rekurzio, ha volt benne, az _egesz_ kimenetet belerakta a valtozoba.
Tudna nekem valaki segiteni? Egy tetszoleges konyvtarlista _minden_ elemere (egyenkent) vegrehajtani ugyanazt a parancsot?
Regebben mar megcsinaltam, mikor nagybetus file-ok voltak es azokat alakitottam kisbetusse, de mar nem emlekszem, hogyan :(

python script cron-al indítva

Sziasztok !

Van egy bash szkriptem, ami email-eket kér le és tesz be egy adatbázisba, a levél lekéréséhez a "getmail" programocska getmail_fetch python script-et használom.
Ha képernyőn bepötyögöm, akkor lefut jól, email bekerül az adatbázisba. Ha azonban cron-ból fut le, akkor minden végrehajtódik, csak a python script nem. Valaki találkozott már hasonló problémával/megoldással ?

Z.

Python... de inkább matematika... de mindenképpen kezdő.. LOOL

Re
Szóval a lényegre térek..
Adott egy feladat:
A « Vonalat rajzol » gombra kattintva a
vásznon megjelenik egy új, színes vonal, ami
minden alkalommal elhajlik az előzőtől.
Ha a « Más szín » gombra kattintunk, akkor
egy véges színkészletből véletlenszerűen egy új színt választ a script. Ez lesz a következő egyenes
színe.
A « Kilép » gomb az alkalmazás befejezésére és az ablak zárására való.

És adott a megoldás:

from Tkinter import *
from random import randrange
# --- az eseménykezel függvények definíciója : --ő -
def drawline():
global x1, y1, x2, y2, color
can1.create_line(x1,y1,x2,y2,width=2,fill=color)
# a koordináták módosítása a következő egyenes számára :
y2, y1 = y2+10, y1-10
def changecolor():
global color
pal=['purple','red','blue','orange','yellow']
c = randrange(8) # => véletlenszám generálása 0 és 7 között
color = pal[c]
#------ Főprogram -------
# a következő változókat globális változókként használjuk :
x1, y1, x2, y2 = 10, 190, 190, 10 # az egyenes koordinátái
color = 'dark red' # az egyenes színe
# A fő-widget létrehozása ("master") :
abl1 = Tk()
# a "slave" widget-ek létrehozása :
can1 = Canvas(abl1,bg='dark grey',height=500,width=650)
can1.pack(side=LEFT)
gomb1 = Button(abl1,text='Kilép',command=abl1.quit)
gomb1.pack(side=BOTTOM)
gomb2 = Button(abl1,text='Vonalat rajzol',command=drawline)
gomb2.pack()
gomb3 = Button(abl1,text='Más szín',command=changecolor)
gomb3.pack()
abl1.mainloop() # eseményfogadó indítása
abl1.destroy()

Rendben, értem is a feladatot, de a köv. feladat azt kéri, hogy egy módosítás után a vonalak, amiket ezután a vászonra rajzol vízszintes és függőlegesek legyenek.
Azt tudom, hogy az x1, x2, y1, y2 írja le a koordinátákat, de nem értem a logikát, hogy miszerint befolyásolja a függvények közti szöget.. ezért kérem hogy valaki magyarázza el..
remélem, hogy eléggé érthetően írtam le amit nem értek..
Tudom, hogy ostoba kérdés és bocsánat a hosszú tartalomért, de nem szeretném ennyiben hagyni a dolgot, mert a többi feladat is erre épül..

Előre is köszönöm..
egy kezdő Pythonozó..

Form szerkesztő Python-hoz

A Python tanulás elején tartok.
Jó lenne valamilyen segítség a formok gyors elkészítéséhez.
Ismertek valamilyen 4GL szerű IDE-t Pythonhoz.
A Boa Constructort feltettem, de nem találom benne a Form tervező részt. Pedig úgy gondolom, hogy lenni kellene benne, mert vizuális elemek meg vannak, csak nem tudom, hogy hova tegyem őket, mert nem tudok látható üres formot készíteni. Ha új formot csinálok, akkor a forráskód szerkesztőben találom magam a formot megjeleníteni csak futás közben tudom, a tervezéshez nem.
Lehet, hogy még néhány órás keresgéléssel megtalálnám, de hátha tudja valaki?

Python kezdő help: karakter megfordításnál elakadtam

Re
Nemrég kezdtem a Pythonal ismerkedni, és kicsit elakadtam az alábbi feladatnál, amely azt kéri, hogy defináljunk egy függvényt, amely megfordítja az argumentumként megadott karakter sorrendjét...

Az én (hibás)programom itt:

>>> def fordit(szo):
x = len(szo)
i = x
betu = ''
vissza = ''
while i > 1:
szo[i] = betu
vissza = vissza + betu
i = i -1
return vissza

>>> a = 'pd'
>>> fordit(a)

A hibaüzenet meg ez:

Traceback (most recent call last):
File "
", line 1, in -toplevel-
fordit(a)
File "
", line 7, in fordit
szo[i] = betu
TypeError: object does not support item assignment

Vki tudna segíteni? Előre is köszönöm