¿Cómo se guarda una variable de entorno?

5

Intentando guardar una variable de entorno.

cd ~
mkdir Projects
export PROJDIR=/Users/David/Projects
cd ~
cd $PROJDIR //can execute.
cd ..
open .bash_profile //was told this was the file you add the variable to.

Entonces la terminal me dice que no hay nada con ese nombre. Para comprobar

ls -a

Y hay dos archivos con bash .bash_history y .bashsessions .bash_history no es ejecutable y cuando abro .bashsessions no estoy seguro de cómo agregaría

export PROJDIR=/Users/$USER/Projects

al archivo. Así que eso tampoco parece correcto.

    
pregunta David 21.03.2017 - 00:30

2 respuestas

3

‘exportar’ no escribe nada en el archivo. Es para que las variables estén disponibles para los subprocesos.

Si nunca has escrito nada en .bash_profile, no sorprende que no exista, ya que no está creado para ti. Tendrá que crearlo usted mismo y escribir esa línea dentro.

Por ejemplo, touch ~/.bash_profile (para crear el archivo) luego edítelo en un editor de su elección, como TextEdit (abierto con Finder o open -e ~/.bash_profile ). Alternativamente, nano ~/.bash_profile . Pegue en export PROJDIR=/Users/$USER/Projects y guarde el archivo, luego vuelva a abrir su shell o obtenga el perfil.

    
respondido por el grg 21.03.2017 - 01:00
2

La redirección es una de las formas más simples de crear un archivo con texto o adjuntar un archivo con texto. La salida estándar se redirige con el símbolo > o se agrega a un archivo con >> .

En tu caso, quieres que la cadena export PROJDIR=/Users/$USER/Projects se agregue a .bash_profile . Protegeremos la cadena con comillas simples (fuertes), por lo que $USER no se expandirá.

cd  # no need for the tilde (~)
echo 'export PROJDIR=/Users/$USER/Projects' >>.bash_profile

Un solo > sobrescribirá cualquier texto en un archivo, así que use >> y agregue el texto por seguridad. Le beneficiaría aprender uno de los tres editores visuales (vi / vim, emacs, nano) suministrados en macOS.

    
respondido por el fd0 21.03.2017 - 14:43

Lea otras preguntas en las etiquetas