Keresés

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

  • bambano

    titán

    válasz VladimirR #7542 üzenetére

    Az a gond, hogy egy halom olyan dolgot javasoltam, ami bash specifikus is lehet. Nem olvastam el ilyen szinten a kottát, hogy pontosan lássam, melyik. Elvileg ha a bash-t sh-ként hívod, akkor sh kompatibilisen kellene futnia, azt nem tudom, hogy ilyenkor a nem sh dolgokkal mit csinál. Normális esetben hibát kellene adnia, de ha valamit elírtak a programozók, akkor lehet, jól végrehajtja és akkor lenyomozhatatlan inkompatibilitási problémát generáltunk.

    Ezért tisztább munka bash-ként hivatkozni rá, akkor nem fordulhat elő, hogy portolják más rendszerre és nem derül ki, miért nem megy.

    Ha aposztrófot használsz az awk script delimitereinek, akkor a benne levő stringet szövegként átadja az awk-nak, további feldolgozás nélkül. Emiatt a $device nem fejtődik ki hda-nak vagy sda-nak. Ezért kell idézőjelek közé tenni, ebben az esetben viszont a printnél a 13. argumentumot a bash behelyettesíti első script argumentumnak és egy 3-as literálnak. Vagyis a $13-ból {$1}3 lesz. Ezt nem akarjuk, ezért escape-lem a $ jelet, és akkor azt az awk már rendesen $13-nak kapja meg.

    Az itt emlegetett dolog az shell tulajdonság, nem awk, ahogy te is írtad.

    Én úgy szoktam pl . 10-zel osztani, hogy printf "%d.%d" $(( $valami / 10 )) $(( $valami % 10 ))

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

Hirdetés