Je veux exécuter beaucoup de commandes terminal sans avoir à placer sudo devant chaque commande. Je suis sous macOS 10.10.5 dans le terminal.
Je fais sudo bash, mais je reçois plein d'erreurs dans mon script .bashrc.
Voici mon fichier .bashrc
mac $ cat .bashrc
#! /bin/bash
# ~/.bashrc: exécuté par bash(1) pour les shells non-login.
# voir /usr/share/doc/bash/exemples/startup-files (dans le package bash-doc)
# pour des exemples
echo "dans .bashrc mais prétend être $0"
/usr/bin/id
which id
echo "le chemin est $(pwd)"
echo "\$PS1 variable est ${PS1}"
echo "\$SHELL variable est ${SHELL}"
echo -e "le chemin est: \n $PATH"
echo $USER
echo "fin de ce script."
# comment afficher une fonction existante
# declare -f highlightExitCode
highlightExitCode()
{
exit_code=$?
if [ $exit_code -ne 0 ]
then
echo -en " RC=${exit_code} "'\xf0\x9f\x98\xb1\x20'
else
echo -en ""
fi
}mac $
Résultat de l'exécution de "sudo bash. J'ai le sentiment que bash n'est pas le shell en cours d'exécution. Lorsque j'ai une instruction switch dans .bashrc, j'obtiens des messages d'erreur à propos de l'instruction switch. Pourquoi diable ne peut-on pas trouver la commande /usr/bin/id ?
mac $ sudo bash
dans .bashrc mais prétend être bash
: Aucun fichier ou dossier de ce type
le chemin est /Users/mac
$PS1 variable est \u$(highlightExitCode) \$
$SHELL variable est /bin/bash
le chemin est:
/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Developer/Tools:/Users/mac/.nexustools
root
fin de ce script.
: commande introuvable
: commande introuvable
'ash: /Users/mac/.bashrc: ligne 18: erreur de syntaxe près du jeton inattendu `
'ash: /Users/mac/.bashrc: ligne 18: `highlightExitCode()
bash: highlightExitCode: commande introuvable
root #
J'obtiens les mêmes résultats avec "sudo -s":
sudo -s
Mot de passe :
dans .bashrc mais prétend être /bin/bash
: Aucun fichier ou dossier de ce type
le chemin est /Users/mac
$PS1 variable est \u$(highlightExitCode) \$
$SHELL variable est /bin/bash
le chemin est:
/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Developer/Tools:/Users/mac/.nexustools
root
fin de ce script.
: commande introuvable
: commande introuvable
'ash: /Users/mac/.bashrc: ligne 18: erreur de syntaxe près du jeton inattendu `
'ash: /Users/mac/.bashrc: ligne 18: `highlightExitCode()
bash: highlightExitCode: commande introuvable
root #