Quiero ejecutar muchos comandos de terminal sin tener que poner sudo delante de cada comando. Estoy corriendo en MacOS 10.10.5 en la terminal.
Hago sudo bash, pero me da muchos errores en mi .bashrc script.
Este es mi archivo .bashrc
mac $ cat .bashrc
#! /bin/bash
# ~/.bashrc: eyecuted by bash(1) for non-login shells.
# see /usr/share/doc/bash/eyamples/startup-files (in the package bash-doc)
# for eyamples
echo "in .bashrc but claims to be $0"
/usr/bin/id
which id
echo "the path is $(pwd)"
echo "\$PS1 variable is ${PS1}"
echo "\$SHELL variable is ${SHELL}"
echo -e "the path is: \n $PATH"
echo $USER
echo "end of this script."
# how to display an existing function
# 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 $
salida de la ejecución de "sudo bash". Tengo la sensación de que bash no es el shell en ejecución. Cuando tengo una declaración case en el .bashrc, tengo mensajes de error sobre la declaración case. ¿Por qué en el mundo no se puede encontrar el comando /usr/bin/id?
mac $ sudo bash
in .bashrc but claims to be bash
: No such file or directory
the path is /Users/mac
$PS1 variable is \u$(highlightExitCode) \$
$SHELL variable is /bin/bash
the path is:
/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
end of this script.
: command not found
: command not found
'ash: /Users/mac/.bashrc: line 18: syntax error near unexpected token `
'ash: /Users/mac/.bashrc: line 18: `highlightExitCode()
bash: highlightExitCode: command not found
root #
Obtengo los mismos resultados con "sudo -s":
sudo -s
Password:
in .bashrc but claims to be /bin/bash
: No such file or directory
the path is /Users/mac
$PS1 variable is \u$(highlightExitCode) \$
$SHELL variable is /bin/bash
the path is:
/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
end of this script.
: command not found
: command not found
'ash: /Users/mac/.bashrc: line 18: syntax error near unexpected token `
'ash: /Users/mac/.bashrc: line 18: `highlightExitCode()
bash: highlightExitCode: command not found
root #
0 votos
Con los archivos de DOS/Windows, las herramientas de unix (como bash) tratarán el retorno de carro como parte del contenido de la línea, por lo que, por ejemplo, está intentando ejecutar el archivo
/usr/bin/id<carriage return>
que no existe. Ver ¿Por qué un shell correcto script da un mensaje de error envuelto/truncado/corrupto? Por cierto, TextWrangler puede convertir fácilmente el archivo a los finales de línea de Unix.