Mappák létezését vizsgálnám. Sima ügy:
if [ -d "${folder}" ]; then
blabla
fi
<>
No de a mappákban fájlok találhatók, melyekkel kezdeni szeretnék valamit.
Ha a mappa létezik, kérdezd le a benne lévő N fájl verziószámát. Igen ám de a verziószámokat különbözőképpen lehet lekérdezni.
Ezért az else ág sem elég. Teszem azt 5 könyvtárról, és 5 fájlról beszélünk.
Gondoltam a case szerkezetre, de így nem működik:
if [ -d "${folder}" ]; then
case "${name}" in
file1)
installed_version=$(${oname} --version)
blabla
csináld az A-t
;;
file2)
installed_version=$(${oname} --version | awk -vFS=' ' '{print $2}')
blabla
csináld az A-t
;;
file3)
installed_version=$(${name} --version | awk '{print $3}')
blabla
csináld a B-t
;;
esac
fi
Miért nem tartja meg a formázást?
- 888 megtekintés
Hozzászólások
kinek a hazijat irjuk?
- A hozzászóláshoz be kell jelentkezni
12 éves regisztrációval? Meglepne... ;)
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Az a < > /code meg kicsit rossz helyen van, ha van jogod, javítani kellene.
A feladatot nem lehetne kicsit konkretizálni?
Miből döntöd el, hogy hogyan kell lekérdezni azt a verziót? A névből?
Mit jelent a "nem működik"? Hibaüzenet? Csak nem csinálja amit vártál? Egyéb?
Hogy az egyik helyen name, a másikon oname van, az szándékos vagy elírás?
- A hozzászóláshoz be kell jelentkezni
A name oname nem elírás. Bár lehetne a name is oname. Odáig még nem jutottam. A name értékeket vesz fel, az oname az original name. Mindegyiknek funkciója van. Változó útvonalak, mappák nevek, státuszok.
Amit szeretnék.
1, Fájlnevek megadása. Ha létezik, akkor van egy mappanév is.
2, Ezt a mappát ellenőrzöm. Ha a mappa létezik, akkor lekérem a verziószámot. Azért ekkor mert ez frissítés.
3, ha nincs mappa akkor az telepítés, de azt csak kapcsolóval lehet.
3, a verziószám ismeretében végzek feldolgozást.
De azt vettem észre, hogy nem veszi figyelembe a könyvtár ellenőrzést. Simán végigfut mindenen.
Eleddig 4 fájlt, illetve mappát ellenőriztem, if then else-vel, és szépen működött.
De az 5. fájl esetében már kevés.
Még az elif szóba jöhet. De a case elegánsabb. S oda több dolgot is felvehetnék.
Erre azért van szükségem, mert a szoftvertárolóban az érintett csomagok nem elérhetőek. És még az így letöltött és feltelepített dolgokat is ki kell egészítenem. külső softlink-kel. Kicsit bonyi.
- A hozzászóláshoz be kell jelentkezni
En mennek a biztosra - if, else, elif vonal
Szerintem az 'elif' a baratod.
- A hozzászóláshoz be kell jelentkezni
Igaz s így frankón működik is. De hülye voltam, mert rákérdezek a mappa létezésére, a case-ban meg megadom neki konkrétan hogy mi a neve. Persze hogy lefut. :(
Más...
Ennek van egyszerűbb módja?
if [ "$(uname -i)" = "x86_64" ]; then
arch="x86_64"
else
arch="i386"
fi
Programok forráskódjainak megjelenítésére <code>Kód</code>
Ennek ellenére mégsem formázva látom viszont az előnézetben. Vagy nem ez kell?
- A hozzászóláshoz be kell jelentkezni
Erre írtam egy awk scriptet, mert cserélni kell a kisebb, nagyobb, and - ampersand - jeleket, valamint a szóközöket, meg még ki tudja, hogy mit.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Ez nem járható?
arch=`uname -i`
Vagy:
arch=`uname -i`
[ "$arch" = 'x86_64' ] || arch='i386'
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
if cd "$folder" 2>/dev/null; then
while read; do
[ -f "$REPLY" ] || continue
case "$REPLY" in
...blabla...
esac
done < <(ls -1)
cd ..
fi
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni