Üdv kezdő programozó vagyok, és a fórumra is csak most regisztráltam, szóval bocs ha lámaságot csinálok, de egy nagy problémába ütköztem a shell scriptekkel a következőt kéne megoldanom
a mappa amiben van a cmd-given nevá fájl le kell ellenőriznem, hogy az e a feldolgozandó mappa, illetve a cmd-given fut-e?
Valami ötletek esetleg?
az elsőre valami ilyennel próbálkoztam:
#!/bin/bash
for DIR in `find . -type d`
do
cd $DIR
for FILE in cmd-given
do
if [ ${DIR} == pwd ]; then
echo "ott vagy"
fi
done
done
sajnos a másodikra ötletem sincs, megértéseteket előre köszönöm :)
- 5219 megtekintés
Hozzászólások
Ismered tovis-t?
- A hozzászóláshoz be kell jelentkezni
Mint kezdő programozónak hadd adjak egy tanácsot!
Addig soha ne írj le egyetlen kódsort sem, amíg nem tudod legalább magadban szabatosan magyarul megfogalmazni, hogy mit szeretnél elérni. Ha segítséget kérsz, akkor ugyanez az eljárás, de a szabatos magyarsággal megfogalmazott feladatot írd le (specifikálás).
Látszik, hogy hasonlóval próbálkoztál a topicindítóban, de pár csiszolás még ráfér. Sejthető, hogy mit akarsz, de az kevés.
- A hozzászóláshoz be kell jelentkezni
Elnézést kérek, csak külföldre járok egyetemre és fordítani próbáltam, szóval akkor megpróbálom máshogy, és tényleg elnézést.
Megkeresem a cmd-given nevű fájlt egy hatalmas mappa rendszerbe (több ilyen nevű fájl lehet más és más helyen), szóval valahova el van dugva. Ha megtaláltam leellenőrzőm, hogy az aktuális mappa van-e beállítva munkakönyvtárnak vagy más szóval feldolgozott, gondolom ara gondoltak ha valami műveletet csinálok az ott e fog végrehajtódni.
A másik része meg hogy a cmd-given az aktuális mappában fut e?
Remélem érthetőbben fogalmaztam, ha nem akkor elnézést, elég nehéz egy idegen nyelvről ilyesmit fordítani
- A hozzászóláshoz be kell jelentkezni
Akkor ez valami házifeladat-szerű? (arra itt harapnak) :-)
a) esetleg c'n'p az eredeti nyelvű szöveget
b) fenti kódodhoz annyit, hogy a küső ciklusban belépsz egy $DIR könyvtárba, de a ciklustörzs végén ki is kell jönni (vissza az eredeti helyre), különben a ciklustörzs 2. lefutásakor a/b -be fogsz menni (előbb a, majd b helyett); valamint a pwd biztosan nem jó, szerinte `pwd` akar az lenni.
Az tény, hogy a második fele még kusza. Valami olyasmi talán, hogy a megtalálandó parancs a PATH alapján honnan fut. Az-e amit te megtaláltál, vagy máshonnan. De tényleg zűrös a kérdés.
- A hozzászóláshoz be kell jelentkezni
Ötletek: ps| grep és keresd meg a pid-et, a /proc alatt minden pidhez tartoznak hasznos információk, sajnos van amit csak rootként látsz (érdemben).
- A hozzászóláshoz be kell jelentkezni
Ne haragudj, de nem értem. Világosan, érthetően meg tudod fogalmazni, mit szeretnél?
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
#! /bin/bash
for i in $(find -name cmd-given); do
DIR="$(dirname "$i" | sed 's/\.\///')"
PROC="$(ps -A a | grep $DIR/[c]md-given)"
[ "PROC" ] \
&& echo "$i $(echo PROC | awk '{print $1}') id-vel fut" \
|| echo "$i nem fut?"
done
ha ugyan erre gondoltál:) nyilvánvaló okokból kipróbálni nem tudom/akarom...
- A hozzászóláshoz be kell jelentkezni
A dirname után szerinted lesz benne olyan, hogy "./"? A sed miatt kérdezem.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Ha már úgyse tudja javítani, akkor szólok, hogy a PROC helyett sokkal hasznosabb lenne ${PROC}
- A hozzászóláshoz be kell jelentkezni
:D
Jaja, a "PROC" konstans true.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
hamari munka ritkán jó:)))
- A hozzászóláshoz be kell jelentkezni
****@desktop:~$ find -name tree
./.gconf/apps/nautilus/sidebar_panels/tree
./Letöltések/magento/magento/js/extjs/resources/images/default/tree
./Letöltések/magento/magento/js/extjs/resources/images/magento/tree
- A hozzászóláshoz be kell jelentkezni
Valóban tévedtem, valamiért a basename-re gondoltam. :(
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
ja:) de úgy vettem ki, hogy többször is futhat azonos névvel, de különböző könyvtárakból indítva egy egy process. bár ki tudja ezt pontosan?
:)
- A hozzászóláshoz be kell jelentkezni
Nekem még mindig picit zavaros a feladat, őszintén szólva nem is igazán érdekel. A gyakorlati problémák úgyis olyanok, hogy lehet pontosítani. Azzal nem tudok mit kezdeni, hogy "nekem is ennyi van leírva, ezt mondta a tanár". Ha nem érti pontosan a feladatot, meg kellett volna kérdezni, mi is az pontosan.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Köszönöm szépen mindenki segítségét, és tényleg sokat segítettetek köszönöm szépen :)
- A hozzászóláshoz be kell jelentkezni