0 votos

Cómo configurar el directorio relativo a la variable PATH y ejecutar secuencias de comandos en el directorio relativo a nivel mundial

Tengo algunos algunos guiones en un proyecto de git wan para acceder a todo el mundo, por lo que añadir la ruta de acceso relativa a la carpeta de secuencias de comandos como

¿y hay un archivo llamado , así que cómo puedo ejecutar si estoy por ejemplo en el carpeta? Tengo que hacer

ya he probado eso, pero no funciona, y también he probado `` sin resultados.

1voto

Si le han añadido la ruta del archivo a ejecutar a su `` variable puede ejecutar el comando directamente con

el directorio en que está independiente. Ejecutarlo como realmente explícitamente dice que la cáscara para omitir y ejecutar el script desde el directorio actual (donde no está disponible).

1voto

Douglas Puntos 10417

TL;DR

Su instrucción de ruta de acceso en ~/.bash_profile debería tener este aspecto:

PATH=$PATH:~/git/scripts/

Los fundamentos.....

Hay tres problemas con la forma en que usted escribió:

  • No se debe usar el export función ya que la variable (PATH) ya está en el ambiente. Cuando usted se registra en, PATH variable fue creado y configurado. Usted no necesita export como ya existe.

  • Quitar las comillas dobles. Comillas dobles causar el camino para ser leído literalmente, por lo que el ~ directorio de inicio de expansión tiene lugar nunca. Para el tilde de expansión para el trabajo, no puede ser encerrada en comillas. Si quieres comprobar esto, en la línea de comandos, escriba lo siguiente:

    $ PATH="~/git/scripts:$PATH"
    $ echo $PATH
    ~/git/scripts:/opt/local/bin:...                  <====== INCORRECT RESULT
    
    $ PATH=~/git/scripts:$PATH
    $ echo $PATH
     /Users/foouser/git/scripts:/opt/local/bin:.....  <====== CORRECT!
    
  • Su tilde expandido (directorio personal) rutas de acceso deben estar en el final de su instrucción de ruta de acceso. Su camino se lee de izquierda a derecha, teniendo prioridad como va. En otras palabras, si hay un comando/función en su directorio home con el mismo nombre como algo ya en su PATH será ejecutado (que se encuentra) en primer lugar y puede tener consecuencias no deseadas.

Una vez que usted hace el cambio a su ~/.bash_profile puedes reiniciar tu sesión o simplemente origen como lo hacía antes y se realizarán los cambios. Usted puede confirmar que funciona issing (o ambos) de los siguientes comandos:

$ echo $PATH
$ which echoHelloWorld.sh

La primera salida será de la PATH como conjunto y el segundo le dirá donde en el camino se encontró la secuencia de comandos.

0voto

Kerry Puntos 100
  1. Usted necesita para hacer de su comando ejecutable.

    chmod +x echoHelloWorld.sh 
    # verify it worked.
    ls -l echoHelloWorld.sh 
    
  2. editar tu perfil, que muy a menudo es ~/.bash_profile Añadir el directorio a la variable path.

    # some people recommend putting your scripts at the end of path. 
    # Less risk of you accidentally overriding a system file name.
    PATH="$PATH:${HOME}/git/scripts/"
    
  3. Me gustaría salir de la sesión. Usted no sabe si su perfil de secuencia de comandos como se ejecuta dos veces.

  4. iniciar una nueva sesión

  5. ejecutar por

    echoHelloWorld.sh
    

Aquí está mi ejemplo:

$ oneApp
-bash: oneApp: command not found
$ echo $PATH
/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
$ export PATH="~/oneFile:$PATH"
$ echo $PATH
~/oneFile:/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
$ oneApp
Running oneApp
$ cat oneApp
cat: oneApp: No such file or directory
$ cat ~/oneFile/oneApp 
#!/bin/bash
echo "Running oneApp"
$ 

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X