Hirdetés

2012. május 27., vasárnap

Hozzászólások

(#251) GD válasza snowflake (#250) üzenetére


GD
(őstag)
LOGOUT blog

köszi a választ

(#252) GD


GD
(őstag)
LOGOUT blog

vmi elböktem, a script nem tolja bele a php-ba a kívánt dolgot

#!/bin/sh
raid=`/sbin/mdadm --detail /dev/md0 | grep ''Failed'' |cut -c19`
if test $raid -eq 0
then
echo ''a Raid1 tömb (/dev/sda+ /dev/sdb) *samsung vinyók* HIBÁTLAN!!!''
ok=`echo ''A Raid tömb hibátlan (sdb+sdc''`
else echo ''valami nem OK!!!''
nemok=`echo ''RAID HIBA!!!''`

phpinfo=`cat /var/www/php/index.php | sed -n '2p'`
if test $raid -eq 0
then sed 's/$phpinfo/$ok/g'
else sed 's/$phpinfo/$nemok/g'
fi
fi


mit néztem be? :U
az if-ek igazítva vannak csak a hsz szétbaxxa..

[Szerkesztve]

[Szerkesztve]

(#253) Jester01 válasza GD (#252) üzenetére


Jester01
(PH! addikt)

A sed hívást. Mit is akarsz csinálni?

Jester

(#254) Szolid


Szolid
(újonc)

Boccs sztem rossz helyre írok..

Az lenne a kárdésem h hogyan lehet azt hogcsinálni Visual Basic-ben hogy csinálsz hat gombot és csak az lessz aktív aminél egy előtte levő mező Connecting-re van állítva?
A Progi Microsoft Sccess 2003-ba kéne és még annyit h a gomp egy másik űrlapot nyit veg

(#255) GD válasza Jester01 (#253) üzenetére


GD
(őstag)
LOGOUT blog

az index.php 2. sorát cserélni az adott változókkal
azaz amit az echo is kiírna az alap if függvényben

(#256) Jester01 válasza GD (#255) üzenetére


Jester01
(PH! addikt)

Ezt szerintem két apró módosítással lehet a legegyszerűbben.
Először is, az ''ok'' és ''nemok'' helyett inkább egy ''statusz'' változót alkalmaznék.
Másodszor, ha jól értem az index.php-t módosítani akarod. Ehelyett én csinálnék egy minta fájlt, és abból gyártanám az index.php-t. Legyen ez a fájl index.php.in, ennek a második sorát fogjuk lecserélni, oda írhatsz is valami erre utaló megjegyzést.

A kód pedig ezekután igen egyszerűen így nézhet ki:
sed ''2c\\$statusz'' </var/www/php/index.php.in >/var/www/php/index.php

Jester

(#257) GD válasza Jester01 (#256) üzenetére


GD
(őstag)
LOGOUT blog

köszönöm, megpróbálom összehozni, ha nem megy majd visítok :R

(#258) GD


GD
(őstag)
LOGOUT blog

igazából a sednek a változókkal való kapcsolatáról nem találtam még írást
alap példák mindig vmi ''echo 12345abcde'' | sed (kapcsolók).... alapján tanultam

amire támaszkodom shell script ügyben az a büki andrás: linux héjprogramozás c. könyve

(#259) Jester01 válasza GD (#258) üzenetére


Jester01
(PH! addikt)

A sed egyáltalán nem törődik a shell változókkal. Alapesetben kap egy ''programot'' és az stdin-ről (vagy fájlokból) olvasva az stdout-ra ír. A változóhivatkozásokat még a shell feloldja mielőtt a sed megkapná.

Egy apró érdekes illusztráció ebben a témakörben az ''echo *'' parancs. Természetesen nem az echo tanult meg fájlokat listázni.

Jester

(#260) GD válasza Jester01 (#259) üzenetére


GD
(őstag)
LOGOUT blog

szorgos magántanulókat nem vállasz? .-)
természetben fizetek...
SÖR :C

(#261) GD válasza Jester01 (#259) üzenetére


GD
(őstag)
LOGOUT blog

jelentem az a megoldás született:



#!/bin/sh
raid=`/sbin/mdadm --detail /dev/md0 | grep ''Failed'' |cut -c19`
if test $raid -eq 0
then
echo ''a Raid1 tömb (/dev/sda+ /dev/sdb) *samsung vinyók* HIBÁTLAN!!!''
statusz=''A Raid1 tömb OK''
echo ''<?php print (''\''$statusz''\''); ?>'' >/var/www/php/index.php

else
echo ''valami nem OK!!!''
statusz=''ERROR''
echo ''<?php print (''\''$statusz''\''); ?>'' >/var/www/php/index.php
fi


mostmár csak cron-olni kell meg vhogy azt kivédeni hogy ne maradjon a böngésző cache-be és mutassa a nem valós állapotot...

továbbá, egy kis html-el feldobni... mert így elég fapados...
erre ötlet?

nagyobb betűk, szín, stb... html-hez nem értek
de megtalálom google, inkább a kivitelezés érdekel
gondolom egy fix html kódba kellene fix helyre betolni az adott php sort..

[Szerkesztve]

(#262) Jester01 válasza GD (#261) üzenetére


Jester01
(PH! addikt)

A beszúrásra írtam a példát a #256-ban, az html-el is működik ha teljes sort akarsz cserélni.

#260: free online support over msn ;)

Jester

(#263) Batman


Batman
(VIP)
LOGOUT blog

Hali!

Nem tudtok valami tenyleg értelem scriptelos oldal címet adni, amibol lehet tanulni.
Tenyleg nem vagyok nay programozó és most már órák ota szivok egy kis aprosággal.

Annyit szeretnék írni, hogy egy adott mappát , végignéz és egy másik könytárba létrehoz egy-egy fájlt az átvizsgált mappák könyvtárneveivel.

Na én még azzal szivok , hogy megírjam azt a resz ami vegignézi az adott könyvtárat ,hogy van e benne könyvtár vagy nincs.

Minden segítséget szivesen veszek.köszi

A Rák ellen az Emberért a Holnapért! - "..ez csak azt bizonyítja, hogy a Firefoxtól maximum a pöcsöd érzed nagyobbnak, de ugyanolyan hüje maradsz a számítógéphez..." by moonman

(#264) GD válasza Batman (#263) üzenetére


GD
(őstag)
LOGOUT blog

Büki András - Unix/Linux héjprogramozás ,talán van belőle ''e-book'' is.. mellesleg a könyv se drága, kb 2500 huf
továbbá a szerző cikkei a linuxvilág oldalán az archivumokban
azért nem olyan olvasmányos mint a szépirodalmi könyv... jegyzetelni kell belőle, meg közben csinálni a konzolban...de nem bántam meg hogy megvettem

(#265) &rew


&rew
(őstag)

hali,

ezt a kimenetet:
5-Dec-2006::09:13:33
kene atalakitani ugy (sed-del/awk-val), hogy utana mondjuk a 'sort' helyesen rendezze. (gondolom a honapokat at kell irni szamokra kozben, de awk ugyis tud indexelni sztringgel)

koszi,
&rew

dodge charger - ford mustang - dodge challenger

(#266) &rew válasza &rew (#265) üzenetére


&rew
(őstag)

sed 's/-/ /g' | sort -M -k2

dodge charger - ford mustang - dodge challenger

(#267) &rew válasza &rew (#266) üzenetére


&rew
(őstag)

sokkal szebb:

sort -M -t- -k3,3n -k2,2 -k1,1n

dodge charger - ford mustang - dodge challenger

(#268) GD


GD
(őstag)
LOGOUT blog

üdv!
adott mappában található összes filenévben a space-t _-ra cserélő script kellene
annyit tudok hogy a sed 's/ /_/g'

ennyit barkácsoltam de nem igazán megy a debug, gondolom úgy rossz ahogy van .-)

for i in *.*
do
mv $i (echo$i |sed 's/ /_/g')
done

ettől biztos lesz jobb működő megoldás is, awk is jöhet, perl, vagy bash, lényeg hogy rövid, átlátható legyen még nekem is :-))

(#269) doc válasza GD (#268) üzenetére


doc
(MODERÁTOR)
LOGOUT blog

jónak tűnik :)
ami nem kell, az a *.* helyette használj simán *-ot, mert így csak azokat a file-okat találja meg aminek a nevében van pont
vagy ha a ponttal kezdődőek is kellenek, akkor

for i i n * .*

MOD: hopp most látom a zárójelet, helyette a ` jelet használd (altgr+7)
tehát így:

for i in *
do
mv $i ` echo$i | sed 's/ /_/g' `
done

[ Szerkesztve ]

"egy felugró ablak kiírja, hogy pop-up blockert installáltam"

(#270) GD válasza doc (#269) üzenetére


GD
(őstag)
LOGOUT blog

tnx!
dob egy ilyet:

rename: line 4: echofilm cime.6.avi: command not found
mv: hiányzik a célfájl-operandus a következő után: "Puma.Black-Semen.Shots.6.avi"
Próbáld a "mv --help"-et.

[ Szerkesztve ]

(#271) GD


GD
(őstag)
LOGOUT blog

á, dehogy, nem pornógyűjteményt rendezgetek..höhö
magát a scriptet az adott könyvtárból próbálom futtatni, ez lehet gond?
echo környékén idézőjel?

[ Szerkesztve ]

(#272) GD


GD
(őstag)
LOGOUT blog

rename 's/ /_/g' *

ez működik! vmi perl cucc..

érdekelne azért hogy a bash script mitől nem..

(#273) doc válasza GD (#270) üzenetére


doc
(MODERÁTOR)
LOGOUT blog

az echo és az utána levő $i egybe van írva

"egy felugró ablak kiírja, hogy pop-up blockert installáltam"

(#274) GD válasza doc (#273) üzenetére


GD
(őstag)
LOGOUT blog

mv: a megadott cél ("akarmi_valami.wmv") nem könyvtár
mv: "renm" és "renm" ugyanaz a fájl

renm=a script

(#275) doc válasza GD (#274) üzenetére


doc
(MODERÁTOR)
LOGOUT blog

ja várjál, neked space van a filenévben
akkor rakd idézőjelbe a változót, tehát mv "$i" blablabla

"egy felugró ablak kiírja, hogy pop-up blockert installáltam"

(#276) GD válasza doc (#275) üzenetére


GD
(őstag)
LOGOUT blog

bingó. ,műxik! (hajlongós smiley)
annyival kellene még felturbózni hogy:
alkönyvtárakban lévő fileokra is megcsinálja x mélységben ha lehet egész a padlóig
(vigyorgós szmájlí)

(#277) doc válasza GD (#276) üzenetére


doc
(MODERÁTOR)
LOGOUT blog

find -exec mv "{}" `echo {} | sed 's/ /_/g'` \;

azért próbáld ki "kicsiben" mielőtt ráuszítod több ezer file-ra :D

[ Szerkesztve ]

"egy felugró ablak kiírja, hogy pop-up blockert installáltam"

(#278) GD válasza doc (#277) üzenetére


GD
(őstag)
LOGOUT blog

sajnos az alkönyvtárakra nincs hatása

#!/bin/sh
for i in *
do
#mv "$i" `echo $i | sed 's/ /_/g'` #csak kvt-on belül
find -exec mv "{}" `echo {} | sed 's/ /_/g'` \;
done

(#279) doc válasza GD (#278) üzenetére


doc
(MODERÁTOR)
LOGOUT blog

nem kellett volna berakni a for-ba, a find végiggyalogol a könyvtárszerkezeten :)
de valamiert tenyleg nem jo
akkor csinald kicsit "parasztabb" modszerrel :D
csinalsz egy futtathato file-t, mondjuk rendez.sh neven a kovetkezo tartalommal:

#!/bin/sh
mv "$1" `echo $1 | sed 's/ /_/g'`

ez ugye annyit csinál, hogy a paraméterben adott file-t átnevezi szóköz nélkülire

aztán ezt kell meghívni minden file-ra:

find -exec ./rendez.sh {} \;

ugyan nem atnevezessel, hanem sima echo-val, de nekem mukodik

Ui: vajon miert nem tudja vegrehajtani a find a shell fuggvenyeket? sokkal szebb lenne...

"egy felugró ablak kiírja, hogy pop-up blockert installáltam"

(#280) GD válasza doc (#279) üzenetére


GD
(őstag)
LOGOUT blog

köszi, teljesen jól működik, nem is parasztos nekem.-)
kérdés:
a meghívás minden file-ra eljárás végén a {}\; milyen szerepet tölt be?

[ Szerkesztve ]

(#281) GD


GD
(őstag)
LOGOUT blog

man find .-))
-exec command ;
Végrehajtja a command parancsot. Értéke igaz, ha a parancs 0 státuszt ad vissza. A következő `;'-ig a find minden
argumentumát a parancs argumentumának veszi. A `{}' string az aktuálisan feldolgozás alatt álló fájl nevével
helyettesítődik. Ezen szerkezeteket esetlegesen meg kell védeni (a `\' használatával) attól, hogy a burok kifejtese
őket. A parancs végrehajtása a kiindulási könyvtárból történik.

(#282) sto1911


sto1911
(PH! addikt)
LOGOUT blog

Udv!

Gyorsban szeretnem megkerdezni, hogy hogyan tudom eldontetni bashben egy valtozorol, hogy numerikus-e?

Tehat a prog beker 2 valtozot, meg kell vizsgalni, hogy nagyobbak-e mint 0, es hogy egyaltalan numerikus ertekek-e.

Az adatlapomon levő gép eladó lehet, vízhűtéssel + pumpa nélküli vízhűtés is! Érd. privátban!

(#283) doc válasza sto1911 (#282) üzenetére


doc
(MODERÁTOR)
LOGOUT blog

így hirtelen az jutott eszembe, hogy ha megpróbálsz vele matekműveleteket végezni, pl.hozzáadni, akkor mi jön ki
pl:

A=5; echo $((A+1))

eredménye 5, ha az A nem szám. bár akkor is ha 0

"egy felugró ablak kiírja, hogy pop-up blockert installáltam"

(#284) sto1911


sto1911
(PH! addikt)
LOGOUT blog

Nincs erre valami fuggveny?

Az adatlapomon levő gép eladó lehet, vízhűtéssel + pumpa nélküli vízhűtés is! Érd. privátban!

(#285) sto1911 válasza sto1911 (#284) üzenetére


sto1911
(PH! addikt)
LOGOUT blog

Jelenleg itt tartok, erre viszont a szam1 szam2 sorok dobnak hibat, es ezt kellene lekezeltetnem vele vhogy.

a=$1
b=$2

szam1=$((a*1))
szam2=$((b*1))

if [ $szam1 -eq $a ] && [ $a -ne 0 ] && [ $szam2 -eq $b ]
then echo A=$a B=$b
else echo "$a vagy $b nem szam vagy A=0"
exit 1
fi

Az adatlapomon levő gép eladó lehet, vízhűtéssel + pumpa nélküli vízhűtés is! Érd. privátban!

(#286) doc válasza sto1911 (#285) üzenetére


doc
(MODERÁTOR)
LOGOUT blog

a=$1
b=$2

szam1=$((a*1))
szam2=$((b*1))

if [ "X$szam1" == "X$a" ] && [ "X$a" != "X0" ] && [ "X$szam2" == "X$b" ]
then echo A=$a B=$b
else echo "$a vagy $b nem szam vagy A=0"
exit 1
fi

"egy felugró ablak kiírja, hogy pop-up blockert installáltam"

(#287) sto1911 válasza doc (#286) üzenetére


sto1911
(PH! addikt)
LOGOUT blog

A nagy X-ek mit csinalnak? 16-os szamrendszer?
Mindjart megnezem muxik-e.

[ Szerkesztve ]

Az adatlapomon levő gép eladó lehet, vízhűtéssel + pumpa nélküli vízhűtés is! Érd. privátban!

(#288) sto1911 válasza sto1911 (#285) üzenetére


sto1911
(PH! addikt)
LOGOUT blog

Javitom magam, nem ugy dobnak hibat, hogy nem helyesek, hanem ugy, h futas kozben kiirja, h numeric argument nincs neki v hasonlo :) Tehat maga a kod helyes.

Az adatlapomon levő gép eladó lehet, vízhűtéssel + pumpa nélküli vízhűtés is! Érd. privátban!

(#289) doc válasza sto1911 (#287) üzenetére


doc
(MODERÁTOR)
LOGOUT blog

nem, az azért kell mert ha a string üres, akkor a feltétel pl. így nézne ki:

if [ == ]

így viszont üres stringnél ez lesz:

if [ X == X ]

[ Szerkesztve ]

"egy felugró ablak kiírja, hogy pop-up blockert installáltam"

(#290) sto1911 válasza doc (#289) üzenetére


sto1911
(PH! addikt)
LOGOUT blog

bambano: bash tud pattern matching-et digit-re.

Akkor egy olat tudnal irni? barmennyi szamjegy lehet benne, de betu vagy mas irasjel es szokoz nem.
En ilyenre gondoltam:

if [ $a=[0-9]* ] then ...

csak ez vmiert nem muxik jol, valamint integer expression expected hibat ad, ha nem numerikus erteket kap (mondjuk ez ertheto, csak ezt nem rendszeruzenetkent kellene neki kiirni, hanem a programbol. Es ugyanez a problema doc megooldasaval is :()

[ Szerkesztve ]

Az adatlapomon levő gép eladó lehet, vízhűtéssel + pumpa nélküli vízhűtés is! Érd. privátban!

(#291) sghc_toma válasza sto1911 (#290) üzenetére


sghc_toma
(senior tag)
LOGOUT blog

így működik:

if [[ $a == [0-9]* ]]; then
echo $a is a number.
fi

in asm we trust

(#292) sto1911 válasza sghc_toma (#291) üzenetére


sto1911
(PH! addikt)
LOGOUT blog

Koszonom, vegulis beadtuk, irt neki a tanar, hogy "jo, keress majd meg" :D A fejlemenyeket majd megirom :)

Amugy amit bekuldtunk az vegulis ez lett:

if [ $# -ne 2 ]
then
echo 2 parameter szukseges!
exit 1
fi

if echo $1|grep '^[0-9]*[0-9]$' > /dev/null
then
if echo $2|grep '^[0-9]*[0-9]$' > /dev/null
then
if [ $1 -ne 0 ]
then echo X=`expr -$1 / $2`
else
echo Hiba, A nem lehet 0.
exit 1
fi
else echo B nem szam.
exit 1
fi
else
echo A nem szam.
exit 1
fi
exit 0

Az adatlapomon levő gép eladó lehet, vízhűtéssel + pumpa nélküli vízhűtés is! Érd. privátban!

(#293) GD


GD
(őstag)
LOGOUT blog

üdv!

kérdésem:

egy lefutó script kinyesné a mdadm --detail /dev/md0 kimenetéből hogy working devices "2"
azaz a kettőt
ekkor egy if kiírja ha 2=örül raid jó, ellenkezőleg nemörül, vmi gáz
ezt az eredményt eltárolnám egy változóban és át szeretném adni egy raid.hmtl vagy raid.php-nek
ergo, a weben az utoljára lefutott script által felvett változó érték kerüljön
ez utóbbival nem vagyok képben:

hogy adok át egy változót egy másik filenak?
gondolok ">"-re vagy sed-re, de hogyan találja meg a pontos helyét a html-ben az már nem teljesen világos, azaz, honnét fogja tudni hová kell beillesztenie a változót

remélem érthető voltam, ha zavaros akkor leírom máshogy is .-)

(#294) sghc_toma válasza GD (#293) üzenetére


sghc_toma
(senior tag)
LOGOUT blog

php-ben: $output=`script`

in asm we trust

(#295) GD válasza sghc_toma (#294) üzenetére


GD
(őstag)
LOGOUT blog

nem pontosan értem hogy gondolod

(#296) sghc_toma válasza GD (#295) üzenetére


sghc_toma
(senior tag)
LOGOUT blog

írtál egy script-et, ami megcsinálja a kívánt feladatot. legyen a neve mondjuk "checkraid".. a következő tartalmú raid.php lefuttatja a scriptet, majd kiírja az output-ját:

<html>
<head>
<title>CheckRaid</title>
</head>

<body>
<?php echo `checkraid` ?>
</body>
</html>

in asm we trust

(#297) GD válasza sghc_toma (#296) üzenetére


GD
(őstag)
LOGOUT blog

így már világos, köszönöm

(#298) GD


GD
(őstag)
LOGOUT blog

valami még nem oké, nem vesz át a bash scriptet a php

mindkettő a /var/www-ben, futási joggal

még a nyers verzió

raid file tartalma:

#!/bin/sh
echo `mdadm --detail /dev/md0 |grep "Working" |cut -c19`

raid.php pedig amit te írtál csak `raid` néven,de egy üres oldalt kapok, holott egy 2-esnek kellene lennie benne

[ Szerkesztve ]

(#299) sghc_toma válasza GD (#298) üzenetére


sghc_toma
(senior tag)
LOGOUT blog

raid helyett írj ./raid-et!
vagy legyen a raid elérési útja a $PATH környezeti változóban..
vagy használj safe mode-ot, `` helyett exec()-et, és legyen a raid a safe_mode_exec_dir-ben..

[ Szerkesztve ]

in asm we trust

(#300) ngabor2


ngabor2
(MODERÁTOR)
LOGOUT blog

üdv guruk.

itt egy kérdés. én nulladik körben ezt válaszolnám:

find . -type f | grep mp3$ | \
xargs lame --mp3input --cbr -b 128 '{}' conv/'{}'

1 baj biztos, hogy van vele, tapasztalatom szerint a lame nem fogja szeretni a conv/./akárni típusú path-ot. én kevesebb file-lal, másként, nagyon nem elegánsan oldottam meg ezt a problémát, de azt nem írnám be. ötletek?

(csak azért törtem a sort, hogy mindent lehessen látni)

esetleg

find . -type f | grep mp3$ | \
xargs lame --mp3input --cbr -b 128 '{}' tmp.mp3 && \
mv tmp.mp3 conv/'{}'

[ Szerkesztve ]

ez olyan, mint a görögtűz, csak görögvíz - Loretto

Copyright © 2000-2012 PROHARDVER Informatikai Kft.