Edvin
Edvin

Reputation: 2011

Running .sh scripts in Git Bash

I'm on a Windows machine using Git 2.7.2.windows.1 with MinGW 64.

I have a script in C:/path/to/scripts/myScript.sh.

How do I execute this script from my Git Bash instance?

It was possible to add it to the .bashrc file and then just execute the entire bashrc file.

But I want to add the script to a separate file and execute it from there.

Upvotes: 128

Views: 316840

Answers (10)

DINA TAKLIT
DINA TAKLIT

Reputation: 8388

If you're running an export command in your bash script, the above-given solution may not export anything even if it will run the script. As an alternative for that, you can run your script using

. script.sh 

Now if you try to echo your var it will be shown. Check the result on git bash -

$ . setup.sh
$ echo $ALGORITHMS
[RS256]

Check more detail in this question

Upvotes: 7

kedar
kedar

Reputation: 51

#!/bin/bash at the top of the file automatically makes the .sh file executable. I agree the chmod does not do anything but the above line solves the problem. you can either give the entire path in gitbash to execute it or add it in the PATH variable export PATH=$PATH:/path/to/the/script then you an run it from anywhere

Upvotes: 1

It's Diab
It's Diab

Reputation: 89

if you are on Linux or ubuntu write ./file_name.sh and you are on windows just write sh before file name like that sh file_name.sh

  1. For Linux -> ./filename.sh
  2. For Windows -> sh file_name.sh

Upvotes: 8

Ash
Ash

Reputation: 6035

Once you're in the directory, just run it as ./myScript.sh

Upvotes: 5

intboolstring
intboolstring

Reputation: 7100

Let's say you have a script script.sh. To run it (using Git Bash), you do the following: [a] Add a "sh-bang" line on the first line (e.g. #!/bin/bash) and then [b]:

# Use ./ (or any valid dir spec):
./script.sh

Note: chmod +x does nothing to a script's executability on Git Bash. It won't hurt to run it, but it won't accomplish anything either.

Upvotes: 124

18446744073709551615
18446744073709551615

Reputation: 16832

#!/usr/bin/env sh

this is how git bash knows a file is executable. chmod a+x does nothing in gitbash. (Note: any "she-bang" will work, e.g. #!/bin/bash, etc.)

Upvotes: 74

taavi
taavi

Reputation: 31

If by any chance you've changed the default open for .sh files to a text editor like I had, you can just "bash .\yourscript.sh", provided you have git bash installed and in path.

Upvotes: 2

Yogesh Awdhut Gadade
Yogesh Awdhut Gadade

Reputation: 2708

I was having two .sh scripts to start and stop the digital ocean servers that I wanted to run from the Windows 10. What I did is:

  • downloaded "Git for Windows" (from https://git-scm.com/download/win).
  • installed Git
  • to execute the .sh script just double-clicked the script file it started the execution of the script.

Now to run the script each time I just double-click the script

Upvotes: 1

Mike
Mike

Reputation: 31

I had a similar problem, but I was getting an error message

cannot execute binary file

I discovered that the filename contained non-ASCII characters. When those were fixed, the script ran fine with ./script.sh.

Upvotes: 3

JohnWrensby
JohnWrensby

Reputation: 2842

If you wish to execute a script file from the git bash prompt on Windows, just precede the script file with sh

sh my_awesome_script.sh

Upvotes: 61

Related Questions