Cómo crear un archivo universal (script) para una Mac, basado en varios comandos de Terminal

20

Tengo varios comandos de Terminal que uso para resolver problemas, escribiéndolos uno por uno en la ventana del terminal.

Estos comandos requieren que se ingrese la contraseña del usuario.

Estoy buscando una manera de crear un archivo universal (script) con estos comandos. Quiero poder ejecutar el archivo en una Mac simplemente haciendo doble clic en él o arrastrando el archivo sobre el icono Terminal.

Nunca he hecho nada como esto antes. ¿Hay alguna forma de crear tal script? Por favor avise.

0lesya
fuente
¿Quiere decir que desea ejecutar un script sin que el usuario ingrese su contraseña?
Allan
@Allan Quiero ejecutar un archivo en lugar de múltiples comandos . Ejecutarlo sin que el usuario ingrese su contraseña al menos una vez sería bueno, pero probablemente imposible si no me equivoco.
0lesya
Eso es definitivamente posible a menos que necesite hacer algo que requiera administrador; vea mi respuesta a continuación
Cullub

Respuestas:

30

Respuesta corta

Un .commandguión debería hacer el truco


Paso a paso

  1. Abra TextEdit y cree un nuevo archivo
  2. Conviértalo a texto sin formato haciendo clic en Formato> Crear texto sin formato
  3. Agregue sus comandos, uno por línea. Por ejemplo, podrías hacer:
    #! /bin/bash cd ~/Desktop mkdir myCoolFolder cd myCoolFolder

  4. Ejecuta chmod u+x ~/Desktop/myCommandScript.commanden tu terminal, donde ~/Desktop/myCommandScript.commandestá la ruta a tu script. Esto le dará permiso al terminal para ejecutar el archivo.

  5. Ya terminaste! Haga doble clic en el archivo para ejecutar. Arrastrar sobre el icono del terminal también funcionará.

Notas:

  • Si necesita hacer algo que requiera acceso de root (administrador), puede prefijar su comando con sudo. Cuando se ejecute el script, deberá ingresar su contraseña (y ser administrador)
  • Si el usuario final no es un administrador, pero necesita hacer algo que requiera acceso a la raíz, puede usarlo su someAdminName, que ejecutará el comando como someAdminName(necesitará su contraseña).

También puede ver aquí en Stack Overflow para obtener un poco más de información.

Cullub
fuente
¿Hay alguna manera de hacer que un archivo de comando no cierre sesión? Quiero tener un archivo de comando que abra la terminal con una variable de ruta predefinida.
Royi
8

Un script es solo una serie de comandos, por lo que podría incluirlo en un script bash.

#!/bin/bash

command 1
command 2
command 3

Ahora, todo esto depende de los tipos de comando y de si requieren o no la intervención del usuario.

Sin embargo, si obtiene información de diagnóstico, por ejemplo, puede tener un script que

#!/bin/bash

# Get SMART status of main drive
diskutil info disk0 | grep -i smart

# Get the model of the machine in question
system_profiler SPHardwareDataType | grep -i Identifier

Esos son solo ejemplos. Tenga en cuenta que cualquier salida generada se enviará a la consola (pantalla). Sin embargo, puede redirigir la salida a un archivo agregando >> /path/to/outputfile.txtal final de cada comando para que tenga un archivo que pueda analizar una vez que el archivo haya terminado de ejecutarse.

Puede nombrar el archivo diagnostics.shy colocarlo donde desee. Solo asegúrese de hacerlo ejecutable emitiendo el comando chmod +x diagnostics.shy utilícelo ./diagnostics.shpara ejecutarlo o haga doble clic en él para ejecutarlo si está guardado en su escritorio .

Alano
fuente