Apple - How to create a universal (script) file for a Mac, based on several Terminal commands
Short answer
A .command
script should do the trick
Step-by-step
- Open TextEdit and create a new file
- Convert it to plain text by clicking Format > Make Plain Text
Add your commands, one per line. For example, you could do:
#! /bin/bash cd ~/Desktop mkdir myCoolFolder cd myCoolFolder
Run
chmod u+x ~/Desktop/myCommandScript.command
in your terminal, where~/Desktop/myCommandScript.command
is the path to your script. This will give the terminal permission to run the file.- You're done! Double-click the file to run. Dragging over the terminal icon will also work.
Notes:
- If you need to do something that requires root (admin) access, you can prefix your command with
sudo
. When the script runs, you'll have to enter your password (and be an administrator) - If the end user isn't an administrator, but you need to do something that required root access, you can use
su someAdminName
, which will perform the command assomeAdminName
(you'll need his password).
You can also see here on Stack Overflow for a bit more information.
A script is just a series of commands, so you could put it into a bash script.
#!/bin/bash
command 1
command 2
command 3
Now, this all depends on the they types of command and whether or not they require user intervention.
However, if you are getting diagnostic info, for example, you can have a script that does
#!/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
Those are just to examples. Keep in mind that any output generated, will get sent to the console (screen). However, you can redirect the output to a file by appending >> /path/to/outputfile.txt
at the end of each command so you have a file which you can parse once the file has finished running.
You can name the file diagnostics.sh
and place it anywhere you like. Just make sure you make it executable by issuing the command chmod +x diagnostics.sh
and use ./diagnostics.sh
to execute it or double click on it to run it if it's saved to your desktop.