Fehlermeldung im Shellscript -> bash



  • Hi Leute,

    ich würde gern einen Befehl zusammenstellen, welcher mir mein homeverzeichnis anzeigt.
    Dies kann man natürlich durch Abfrage von $HOME machen. Da ich das script mittels 'source scriptname.sh' aus der .bashrc aus starten möchte, weis ich jedoch nicht, ob die Umgebungsvariablen da schon gesetzt sind.
    Jedenfalls hab ich solch einen Befehl zusammengesetzt:

    cat /etc/passwd | grep `whoami` | cut -d':' -f 6 2> /dev/null
    

    Dies liefert sehr schön mein Homeverzeichnis

    Nun möchte ich den wert einer Variablen zuweisen:

    HOME=cat /etc/passwd | grep `whoami` | cut -d':' -f 6 2> /dev/null
    

    Jedoch kommt nun der Fehler:
    bash: /etc/passwd: Keine Berechtigung

    1.)was hab ich falsh gemacht?
    2.)wiso wird der Fehler ausgegeben und nicht in /dev/null umgeleitet?

    Für Eure hilfe wäre ich sehr dankbar 🙂

    mfg



  • Hallo,

    du musst cat /etc/passwd auch in Backticks setzen, sonst funktioniert das nicht.



  • THX

    cj@work schrieb:

    du musst cat /etc/passwd auch in Backticks setzen, sonst funktioniert das nicht.

    müsste man dan nicht die ganze Zeichenfolge nach dem Zuweisungsoperator in backstiks setzten?

    mfg



  • Hi,

    ja geht auch. Probiers einfach aus.



  • cj@work schrieb:

    ja geht auch. Probiers einfach aus.

    Vielen Dank für die Hilfe 🙂



  • Hi,

    gerne, aber ich war etwas vorschnell. Wenn du nämlich alles in Backticks setzt, kommt ne Fehlermeldung aufgrund von verschachtelten Backticks, und wenn du bei grep `whoami` die Backticks rausnimmst, grept der eben nicht mehr den entsprechenden User raus.

    Ob und wie man Backticks verschachteln kann, weiss ich nicht.



  • Naja, dass man Backticks nicht so gut verschachteln kann ist klar. 🙂

    Aber offen gestanden halte ich linu(x)bies ganzes Script für eher blödsinnig; $HOME wird immerhin bereits von man: login(1) gesetzt. 😉


Anmelden zum Antworten