2

I'm writing a pretty small package for personal use that wraps os/exec to make running multiple commands in the same terminal a little nicer.

I know to run multiple commands at once on linux you can do the following after reading this answer:

cmdSeq := "cd ~/some-awesome-directory/;git status"
cmd := exec.Command("/bin/sh", "-c", cmdSeq)
result, err := cmd.CombinedOutput()

// etc ...

But /bin/sh is unique to Linux (and potentially Mac, I haven't tested on Mac OS). If I wanted to do a similar thing for windows users what should I use to run multiple commands together in the same shell instance?

Repository for reference

1 Answer 1

1

Looks like I stumbled upon it with a bit of research, you can use the following on Windows:

exec.Command("cmd", "/C", "echo foo && echo bar")
Sign up to request clarification or add additional context in comments.

2 Comments

As a followup, you should question whether or not you require actual shell access. Can you just execute the desired binary? If you're passing any kind of user input into shell execution you're opening yourself up to potential security/abuse problems.
I'll keep that in mind thanks @Thomas, primarily I'm going to be using this for internal scripts just to make my life easier, i.e. I've got one that increments a repositories SemVer tag and releases it for me.

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.