Jedes Mal, wenn ich pushd oder popd verwende, wird der Stapel auf die Standardausgabe gedruckt. Wie nicht?
Ich möchte das nicht pushd > /dev/null
jedes Mal tun, weil ich viele Skripte habe, die sich gegenseitig aufrufen.
Vielleicht reicht eine nette Überschreibung aus, aber ich muss diese integrierten Funktionen nur in meinen Skripten überschreiben und dann das richtige Verhalten wiederherstellen.
pushd
undpopd
mitcd
undcd ~-
.~-
ist eine Tilde-Erweiterung , die auf $ OLDPWD gesetzt ist .cd -
funktioniert auch. Ich bin mir nicht sicher, welche Version mit einer Vielzahl von Systemen kompatibler ist.Antworten:
Sie könnten hinzufügen
an die Spitze jedes Skripts. Dies ist wahrscheinlich der Mindestaufwand für die Lösung Ihres Problems.
quelle
&>
anstelle von>
set -e
am Anfang beider Funktionen undset +e
am Ende oder nurset -e
am Anfang des Skripts hinzufügen , um das Skript zu beenden, wenn ein Exit-Code! = 0 gefunden wird. Dies funktioniert auch im Shebang, z#!/bin/bash -e
. Quelle: gnu.org/software/bash/manual/html_node/The-Set-Builtin.htmlIn zsh können Sie
setopt PUSHDSILENT
. Setzen Sie dies in Ihre~/.zshrc
.quelle
popd -q
(leise).-q
Optionzsh
.Fügen Sie in Ihrer .profile-Datei (wie auch immer sie in Ihrem System heißt) Folgendes hinzu:
quelle