2010-08-24 26 views
42

Estoy en el sistema operativo Mac 10.6 de Mac, y estoy tratando de aprender una o dos cosas sobre las secuencias de comandos shell. Entiendo cómo guardar un script de shell y hacerlo ejecutable, pero me pregunto qué puedo hacer o dónde puedo guardar el archivo para hacerlo global (es decir, accesible sin importar en qué carpeta esté).¿Cómo hacer un script de shell global?

Por ejemplo, si guardo un archivo .sh en el directorio/Users/username/y lo hago ejecutable, solo puedo ejecutar ese script en ese directorio específico. Si navego a/Users/username/Downloads, por ejemplo, no puedo ejecutar el script.

Además, cualquier sugerencia de recursos para aprender más sobre scripts de shell sería útil. Gracias

+1

Lea sobre la variable de entorno path'' primero, y luego actualizar la pregunta. –

Respuesta

68

/usr/local/bin sería la ubicación más adecuada. Mac OS X tiene en el PATH por defecto

-1

Debe ponerlo en el directorio ejecutable global en su máquina. Creo que normalmente sería /usr/bin en sistemas operativos basados ​​en Unix (sin embargo, esto con frecuencia requeriría privilegios de superusuario en esa máquina).

También podría ponerlo en cualquier otro directorio que esté en la variable de entorno $PATH, aunque solo funcionaría para aquellos usuarios que tengan ese directorio en esa variable.

Puede encontrar el valor $PATH escribiendo echo $PATH en el depósito. Los directorios están separados por:.

+7

voy a downvote debido a/usr/bin es el respuesta incorrecta./usr/local/bin está específicamente diseñado para "locales" cripts (es decir, los que creas en lugar de los que vienen con el sistema). –

1

O guardarlo en /usr/bin (o cualquier otro directorio presente en PATH) o editar PATH para incluir el directorio en el que lo guardó básicamente hará que se ejecute en cualquier directorio.

+4

'/ usr/bin' se puede vaciar por completo y reemplazar durante una actualización del sistema operativo, haciendo que el script desaparezca misteriosamente. '/ usr/local/bin' es para este propósito, como lo menciona Bryan Oakley. También vea el [Estándar de jerarquía del sistema de archivos] (http://www.pathname.com/fhs/pub/fhs-2.3.html#USRLOCALLOCALHIERARCHY) –

30

Tradicionalmente, este tipo de scripts o bien ir en ~/bin (es decir: el directorio bin en el directorio personal) o /usr/local/bin/ El primero significa la secuencia de comandos sólo funcionará para usted, este último es de scripts que desea que cualquiera en el sistema pueda ejecutar.

Si lo pone en ~/bin, puede necesitar agregar eso a su variable de entorno PATH. /usr/local/bin ya debería estar en la ruta.

2

Sobre el uso de cáscara del golpe, escribir el guión como la función y luego ponerlo a la .bashrc o la fuente el fichero que contiene esa función por "nombre_archivo fuente"

Ahora ejecutar el guión de llamada de función en la cáscara.

9

Hay dos maneras de hacerlo -

  1. poner su guión en/local/bin usr y asegurarse de que es ejecutable (chmod + x my_script) (Esto ya se encuentra en el camino, se puede compruebe haciendo un echo $ PATH)
  2. Cree una carpeta en su directorio de inicio llamado bin. (Para las secuencias de comandos personales)
    • cd ~ (le lleva a su directorio personal)
    • bin mkdir (crear una carpeta bin)
    • vim.bash_profile (para establecer la variable de entorno de ruta)
    • exportación PATH = ~/bin: $ PATH (Presione i luego agregue esta línea y luego esc y escriba: wq)
    • Ahora puede escribir el nombre de su secuencia de comandos y ejecutarlo desde cualquier lugar que desee.
1

En Mac, 1. Exportar la ruta del script, export PATH = "$ PATH:" (ejemplo/Usuarios/pescador/practiceShell/bin ")

  1. añadir la secuencia de comandos en el archivo .bashrc (~/.bashrc).
Cuestiones relacionadas