Vous pouvez mettre ces lignes dans votre .zsrhc
ou .bashrc
[ -z "$PS1" ] && return
function cd {
builtin cd "$@" && ls -F
}
Résultat ->
Explication de cette réponse:
Plus tôt dans mon .bashrc, j'ai : [ -z "$PS1" ] && return, et tout ce qui suit cette ligne s'applique uniquement aux sessions interactives, donc cela ne affecte pas le comportement de cd dans les scripts.
Autres informations provenant de ce commentaire:
[ -z "$PS1" ] vérifie si la variable $PS (variable d'invite interactive) est de "longueur zéro" (-z). Si elle est de longueur zéro, cela signifie qu'elle n'a pas été définie, donc Bash ne doit pas fonctionner en mode interactif. La partie && return quitte l'exécution de .bashrc à ce moment-là, dans ces conditions.
Au fait, merci pour la question, c'est vraiment cool :)
Édit :
Une autre solution serait d'intégrer votre ls à votre invite de commandes; je suis sûr que vous pouvez le faire avec OhMyZsh ;)
5 votes
Pourquoi les alias n'ont-ils pas fonctionné pour vous ?
2 votes
Alors, le cd résultat de mkdir devrait-il ajouter le ls?
0 votes
@bmike Eh bien, un répertoire nouvellement créé sera vide, donc ls n'affichera rien.
0 votes
@Random832, vous supposez qu'il n'y a pas de drapeaux sur ls, mais plus important encore, ma question révélera à quel point un changement est souhaité / lourd. Je préfère les alias aux fonctions, mais les deux peuvent essayer ce qui est demandé.
0 votes
Par coïncidence, j'allais poser la même question. Je posterai ma réponse dans quelques temps.
0 votes
@Thorbjørn Ravn Andersen Parce qu'un alias n'appliquera pas d'arguments aux commandes, seule la dernière commande reçoit les arguments. Essayez
alias foo='echo "cd "$1"" && echo "du "$@"" && echo "ls "$2""'
puisfoo fred barney dino
1 votes
@fd0 Je ne doute pas que les alias ne fonctionnaient pas. Je me demande pourquoi. Il pourrait y avoir une solution plus simple au problème.
0 votes
@ThorbjørnRavnAndersen les alias semblent ne pas accepter d'arguments; ce ne sont qu'un outil de remplacement de chaîne.