Haciendo que la función ~ / .bashrc se pueda llamar para configurar un entorno

3

Tengo una aplicación instalada. Llamémosla my_app a la que deseo poder llamar desde la línea de comandos. Se encuentra en /Applications/my_app.app/Contents/Resources .

Entonces, lo que esperaba hacer era que mi ~/.bashrc se pareciera a lo siguiente:

# .bashrc

my_app-start(){
export PATH=$PATH:/Applications/my_app.app/Contents/Resources/
}

y luego, cada vez que quiero poder usar la aplicación desde una nueva sesión de terminal, cargaría la llamada my_app-start , después de lo cual espero que mi aplicación sea ejecutable simplemente escribiendo my_app en cualquier lugar de mi sistema. Sin embargo, mi terminal no reconoce la función my_app-start ... En otra plataforma Linux, esto funciona para mí, pero quizás las Mac necesiten algún tipo de manipulación con ~ / .bash_profile. Nunca entendí la diferencia.

  1. ¿Cómo puedo hacer que la función se pueda llamar automáticamente?
  2. ¿Este método es una forma segura y sensata de cargar mi aplicación?
pregunta Dipole 07.07.2016 - 23:22

2 respuestas

3

Su función no funciona porque OS X inicia su shell como shell de inicio de sesión, por lo que .bashrc no se lee. No usaría una función en este caso. Si solo hay un archivo ejecutable en /Applications/my_app.app/Contents/Resources/ , entonces usaría un alias.

Usaría archivos separados al cambiar su entorno. Establezca su RUTA y lo que sea en este / estos archivo (s) y, en cualquier momento, obtenga su archivo de entorno y estará listo. Como ejemplo, tengo el conjunto de herramientas AST instalado. Estoy probando las herramientas suministradas por AST, pero necesito usar el PATH mínimo provisto por OS X y el PATH para las herramientas de AST. Por lo tanto, tengo que modificar mi PATH que se establece en mi .profile. He creado un archivo .astenv en mi carpeta de inicio.

#
#  .astenv
#
#  The AT&T Software Technology tools from AT&T Research
#
#

PATH=$(/usr/bin/getconf PATH)
ASTPATH=$HOME/local/opt/ast-master/arch/darwin/bin

PATH=$ASTPATH:$PATH
export PATH

Para usar este archivo de configuración, puedo iniciar una nueva sesión de terminal y obtener el archivo,

. ~/.astenv

o en mi sesión actual de terminal, inicie una nueva instancia de mi shell y luego obtenga el archivo.

ksh
. ~/.astenv

Cuando exit este shell, vuelvo a mi entorno original.

    
respondido por el fd0 07.07.2016 - 23:48
2

¿Por qué no solo crea un enlace simbólico en /usr/local/bin ?

ln -s /foo/bar/hello_world.app /usr/local/bin/hello_world.app

No tendrás que crear ninguna función en .bashrc

De hecho, lo que he hecho con los scripts que escribí que tienen varias versiones, es crear un enlace simbólico a un archivo con el texto "-estaña" y luego copiar la última versión en ese archivo.

Mi enlace simbólico se ve así:

ln -s /foo/bar/my_app-latest.app /usr/local/bin/my_app.app

Cada vez que tengo una nueva versión, solo copio a my_app-latest.app y todo está actualizado.

    
respondido por el Allan 07.07.2016 - 23:29

Lea otras preguntas en las etiquetas