202 votes

Suppression du message "Le shell interactif par défaut est maintenant zsh" dans MacOS Catalina

Je sais que Catalina utilise zsh comme shell de connexion et shell interactif par défaut, mais c'est très ennuyeux lorsque j'ouvre iTerm.app ou que j'exécute une commande avec /bin/bash il affiche un message verbeux comme ci-dessous :

$ /bin/bash
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.

Le document d'assistance auquel le message renvoie est le suivant https://support.apple.com/kb/HT208050

Comment puis-je masquer la journalisation verbeuse ? Je ne veux pas qu'on me rappelle que le "shell interactif par défaut est maintenant zsh" chaque fois que j'ouvre Terminal.

262voto

Josh Lee Points 53741

J'ai trouvé la solution sur reddit . La solution est également mentionnée dans la section "How to use a different shell without changing the default" de l'article du support Apple mentionné dans l'avertissement bash : https://support.apple.com/en-us/HT208050/ .

Ajouter :

export BASH_SILENCE_DEPRECATION_WARNING=1

à $HOME/.bash_profile , $HOME/.profile o $HOME/.bashrc et redémarrez iTerm. Après cela, le message d'avertissement aura disparu.

68voto

chrishiestand Points 503

Apple /bin/bash est assez obsolète (actuellement v3.2.57). Je viens de passer à l'utilisation du bash fourni par homebrew (actuellement v5.0.18), ce qui supprimera également cet avertissement de dépréciation.

Des pas :

  1. Installer Homebrew si vous ne l'avez pas déjà fait.

  2. Installez le dernier shell bash avec Homebrew :

    brew update && brew install bash

  3. Si vous avez un ordinateur Apple Intel, changez la coquille comme ceci :

    sudo chsh -s /usr/local/bin/bash $(whoami)

Ou si vous avez un Apple Silicon (par exemple M1) :

sudo chsh -s /opt/homebrew/bin/bash $(whoami)

18voto

nverkland Points 141

J'ai trouvé que devenir Root, puis ajouter la suppression de la dépréciation en /etc/profile était plus fiable. J'utilisais déjà ZSH et je recevais l'avertissement à chaque fois que j'ouvrais une nouvelle console. Terriblement ennuyeux. /etc/profile se lit désormais comme suit :

    # System-wide .profile for sh(1)
    export BASH_SILENCE_DEPRECATION_WARNING=1

    if [ -x /usr/libexec/path_helper ]; then
            eval `/usr/libexec/path_helper -s`
    fi

    if [ "${BASH-no}" != "no" ]; then
            [ -r /etc/bashrc ] && . /etc/bashrc
    fi

11voto

yoliho Points 340

J'ai fait un peu de recherche et j'ai trouvé le texte supplémentaire (j'ai lu le texte de l'article). URL indiqué dans le message mais a manqué la ligne pour export BASH_SILENCE_DEPRECATION_WARNING=1 )

Le problème est que le texte que vous voyez provient de la version de /bin/bash d'Apple.

strings /bin/bash | grep default montre le texte.

Donc pour utiliser bash, je devrais ajouter un bash plus récent provenant d'une autre source et l'utiliser dans chsh. J'utiliserais de toute façon un autre bash, car la version d'Apple a plus de 10 ans.

Si l'on regarde le site d'Apple code pour MacOS 11.3 dans shell.c (Apple ne semble pas encore l'avoir publié pour la 11.4)

Apple a ajouté, entre autres, les éléments suivants

#ifdef __APPLE__
  if (interactive_shell && !act_like_sh) {
      char const * const silence_warning = getenv("BASH_SILENCE_DEPRECATION_WARNING");
      if (!silence_warning || *silence_warning != '1') {
          struct stat sbuf;
          if (stat("/bin/zsh", &sbuf) == 0) {
              fprintf(stderr, "\n"
                              "The default interactive shell is now zsh.\n"
                              "To update your account to use zsh, please run `chsh -s /bin/zsh`.\n"
                              "For more details, please visit https://support.apple.com/kb/HT208050.\n");
          }
      }
  }
#endif

Ainsi, définir BASH_SILENCE_DEPRECATION_WARNING supprimera ce problème (mais voir le commentaire sur le fait que bash est une ancienne version et que je ne le conseille pas).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X