Hirdetés

Új hozzászólás Aktív témák

  • Jester01
    veterán

    Sziasztok,
    segítségre lenne szükségem. :)
    Készítettem egy scriptet, ami rendszeresen frissít néhány dolgot a telefonomon. A problémám az lenne, hogy ha így írom, akkor minden jól működik:

    #!/sbin/sh

    if [ -e $CMU/cm*NIGHTLY-bacon.zip ] || [ ! -e /data/system/packages.xml ]; then

    Viszontha így, akkor nem:

    #!/sbin/sh

    CM=$(cd $CMU && ls cm*NIGHTLY-bacon.zip)

    if [ -e $CMU/$CM ] || [ ! -e /data/system/packages.xml ]; then

    Valaki tudna nekem segíteni, hogy miért nem működik a második?
    Előre is köszönöm a válaszokat. :))

    A közhiedelemmel ellentétben az ls cm*NIGHTLY-bacon.zip parancsban a *-ot nem az ls oldja fel, hanem még a shell. Jelen esetben amikor ez történik, akkor még nem futott le a cd $CMU ezért nem talál illeszkedő fájlokat, így beállítástól függően vagy törli az argumentumot vagy pedig változatlanul adja át. Előbbi esetben az ls kimenete a $CMU teljes tartalma lesz, utóbbi esetben pedig semmi, mivel az ls maga már nem kezeli le a *-ot ezért betű szerint azt a fájlt keresi, hogy cm*NIGHTLY-bacon.zip (így, a csillaggal).

Új hozzászólás Aktív témák