1

I am trying to call a git bash shell command from inside Windows operating system. Following is my code snippet. Can anyone please tell me, what I am doing wrong?

    git_bash_path = WindowsPath(r"c:\Users\abcd\AppData\Local\Programs\Git\git-bash.exe")
    command = "ls"
    subprocess.call([str(git_bash_path), command])

After running, the python script, it opens a bash window with the title in the window - /usr/bin/bash --login -i ls and in the git bash window the error is bash:/usr/bin/ls: cannot execute binary file.

I also tried -

    subprocess.check_output(command, shell=True, executable=str(git_bash_path)) 

but the error is the same.

2 Answers 2

1

It should use the -c parameter:

bashCommand = "ls"
output = subprocess.check_output(['bash','-c', bashCommand])

Git for Windows comes with a bash.exe. It is is in the %PATH%, that should be enough.

Sign up to request clarification or add additional context in comments.

Comments

0

What worked for me, in case %PATH% does not have bash.exe, do

command = fr'"%ProgramFiles%\Git\bin\bash.exe" -c "echo hello"'
r = subprocess.Popen(command, shell=True)

This assumes that Git Bash is installed in default Program Files location.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.