Reputation: 3965
First off I'm using Mac.
Next, I need to execute this "file.sh" we will call it. Everytime I need to execute it I have to open Terminal and type:
cd /Users/Jacob/Documents/folderWithFileInIt
bash file.sh
This is okay, but I feel like it would be a lot quicker if I make the file execute on double click, don't you think?
So my question is, how do I make this file executable via double click?
My ideas were either:
a) type something like chmod into terminal and change permissions?
b) make a file, put code I wrote above in it ^ and then make that file executable?
c) make an automation somehow to do this?
Which way is best, or is there an even better way?
Upvotes: 213
Views: 364521
Reputation: 30551
If you give the script file the extension .app
then you can run it with double click.
Upvotes: 1
Reputation: 18693
By default, *.sh
files are opened in a text editor (Xcode or TextEdit). To create a shell script that will execute in Terminal when you open it, name it with the “command” extension, e.g., file.command
. By default, these are sent to Terminal, which will execute the file as a shell script.
You will also need to ensure the file is executable, e.g.:
chmod +x file.command
Without this, Terminal will refuse to execute it.
Note that the script does not have to begin with a #!
prefix in this specific scenario, because Terminal specifically arranges to execute it with your default shell. (Of course, you can add a #!
line if you want to customize which shell is used or if you want to ensure that you can execute it from the command line while using a different shell.)
Also note that Terminal executes the shell script without changing the working directory. You’ll need to begin your script with a cd
command if you actually need it to run with a particular working directory. E.g. you can use cd "$(dirname "$0")"
to set the current working directory to the directory where your shell script lies.
Upvotes: 430
Reputation: 12198
nano ~/FILENAME
Write your bash script and exit nano with Ctrl + x
and hit y
Make file an executable
chmod 700 ~/FILENAME
Bingo, the file turns an executable, double click to launch
Works without .sh
extension or shebang (#!
) prefix.
Upvotes: 0
Reputation: 153
you can change the file executable by using chmod
like this
chmod 755 file.sh
and use this command for execute
./file.sh
Upvotes: 2
Reputation: 1125
File name should in under double quotes. Since i am using Mac->In my case content of batch file is
cd /Users/yourName/Documents/SeleniumServer
java -jar selenium-server-standalone-3.3.1.jar -role hub
It will work for sure
Upvotes: 9
Reputation: 6005
Remove the extension altogether and then double-click it. Most system shell scripts are like this. As long as it has a shebang it will work.
Upvotes: 35
Reputation: 8741
You can just tell Finder to open the .sh
file in Terminal:
This will have the exact same effect as renaming it to .command
except… you don't have to rename it :)
Upvotes: 14