Redirect funktioniert nicht richtig, 2> /dev/null wird 2 > /dev/null und stderr nicht umgeleitet
Ich hoffe jemand kann mir helfen, herauszufinden, welche Einstellung brauche ich um zu überschreiben. Ich arbeite auf einem Unix-terminal-server läuft ein Linux, Xterm, linux-shell. Jedesmal, wenn ich einen Befehl wie grep "blah" 2> /dev/null
am shell-prompt eingeben, wird der Befehl als grep "blah" 2 > /dev/null
und unnötig zu sagen, die Umleitung fehlschlägt.
xterm-version ist X.Org 6.8.99.903(238)
Kann ich nicht aktualisieren oder installieren Sie etwas, das ist ein gesperrt-Produktion-server.
Vielen Dank für jede Hilfe und Aufklärung über das Thema, es ist meine grep nutzlos in der high-Verzeichnis-Ebenen mit Rekursion.
- Eine kleine Anmerkung, dies ist die csh, wenn ich wechseln etwas wie ksh, wird der redirect richtig arbeitet... ist das vielleicht eine Besonderheit der csh?
- haben Sie versucht grep "bla" 2>/dev/null statt grep "bla" 2> /dev/null (beachten Sie das Leerzeichen zwischen > und /)
- Hi Sai, ya, sobald ich sah, wie ich tippte meinen Befehl aus und ging und überprüft, dass es egal ist, offenbar csh nimmt 2>/dev/null und produziert 2 > /dev/null... aber wir haben einen Gewinner unter, Dank für den input, aber 🙂
- "Eine kleine Anmerkung, dies ist csh" - Das ist nicht eine kleine Anmerkung, das ist die Ursache des Problems.
xterm
ist nur ein terminal-emulator; es ist nicht eine shell.csh
ist die Schale, und es ist das, was interpretiert die Befehle, die Sie eingeben.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dass die Bourne-shell-syntax, aber es funktioniert nicht in der c-shell.
Die besten Sie tun können, ist
Wo man stdout an eine Datei, und stderr auf eine andere. Umleitung nur stderr ist nicht möglich.
In einem Kommentar, sagen Sie: "Eine kleine Anmerkung, dies ist csh". Das ist nicht eine kleine Anmerkung, das ist die Ursache des Problems.
xterm
ist nur ein terminal-emulator, nicht die Schale; alle es tut, ist das set-up-Fenster, das bietet die textuelle ein-und Ausgabe.csh
(oderbash
oder ...) ist die shell, also das Programm, das interpretiert die Befehle, die Sie eingeben.csh hat eine andere syntax für die Umleitung, und lässt Sie nicht umleiten, nur stderr.
command > file
leitet stdout;command >& file
leitet sowohl stdout und stderr.Sagen Sie das system nicht, haben bash, aber es gibt ksh. Ich schlage vor, nur mit ksh; es wird viel mehr vertraut. Sowohl bash und ksh sind abgeleitet aus den alten Bourne-shell.
Alle (?) Unix-ähnlichen Systemen wird eine Bourne-shell installiert haben, weil
/bin/sh
. Auch wenn Sie mit csh (oder tcsh?) als Ihre interaktive shell, können Sie immer noch aufrufen, sh, sogar in einem one-liner. Zum Beispiel:ruft
sh
, die wiederum ruftcommand
und leiten nur die stderr zu/dev/null
.Dem Zweck, eine interaktive shell ist (meist), lassen Sie andere Befehle, die auf dem system verfügbar sind.
sh
oder jede shell, die verwendet werden können als nur ein weiterer Befehl.