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

  • Mahesa

    tag

    válasz htibi20 #11008 üzenetére

    nah igen, a shell szkriptek a shebang sorral kezdődnek:
    #!/bin/bash

    utána meg jön a többi :)
    grep $USER /etc/group | cut -d ":" -f1 | tr -t "\n" " "
    echo

    Először grep-el kikeresed azokat a sorokat az /etc/group fájlból, melyek tartalmazzák az aktuális felhasználó nevét - a $USER változóban benne van a bejelentkezett felhasználó neve:
    grep $USER /etc/group

    Ezt pipe-olod a cut parancshoz, aminél a -d után megadod a mezőelválasztót (a group fájlban az egyes mezőket kettőspont választja el egymástól - esetleg nézz bele a fájlba: more /etc/group - a -f1 pedig azt mondja meg, hogy az első mezőre vagyunk kíváncsiak. Nah, így már meg is vannak a csoportnevek, melynek tagja a felhasználó:
    grep $USER /etc/group | cut -d ":" -f1

    Csak az a baj, hogy a groups parancs egy sorban adja ezt vissza, ezért lecseréljük tr-el az újsor karaktereket (\n) szóközre. Ez viszont kiírtja az utolsó újsor karaktert is, ami miatt a prompt ugyanabban sa sorban jönne vissza, mint az eredmény, ezért nyomunk még egy üres echo parancsot.

    Próbáld ki lépésről-lépésre a gép előtt. Jah és nyilván van számos más megoldás is, pl. a cut helyett az awk, a tr helyett a sed, stb..........

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