Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Bash build system for running currently open script in Sublime Text 2
"cmd" : ["$file"],
"selector" : "",
"shell" : "bash"
Copy link

pyrochlore commented Feb 18, 2013


Copy link

xavdid commented Mar 26, 2013

I'm using this, but it's saying "permission denied". Do I need to change something in my bash profile or something else I'm not thinking of?

Copy link

shmup commented Apr 16, 2013

@Xavdidtheshadow chmod +x

Copy link

alex1704 commented Apr 28, 2013


Copy link

andrewheiss commented Aug 8, 2013

This doesn't work if the script is in a folder with spaces in its name. Building ~/Desktop/Test Folder/ will fail:

/bin/sh: ~/Desktop/Test: No such file or directory
[Finished in 0.0s with exit code 127]

Copy link

andrewheiss commented Aug 8, 2013

However, it seems like you can fix that by modifying the build system slightly. Instead of specifying "shell": "bash", you can manually pipe it through bash, like so:

    "cmd"       : ["bash", "$file"],
    "selector"  : ""

Copy link

gaiatronik commented Aug 16, 2013

Thank you Andrew, that worked perfectly.

Copy link

raisen commented Sep 24, 2013


Copy link

mehikmat commented Feb 28, 2014

I run a sh file using above build script and run smoothly but waits at some point and doesn't take input if I type.

rm: remove write-protected regular file `/etc/udev/rules.d/70-persistent-net.rules'?

I typed y but didn't take any action.

Any Idea?

Copy link

farinspace commented Jun 30, 2014

In sublime text 3, I am using the following:

    "cmd"       : ["$file"],
    "selector"  : "",
    "path"      : "/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin"

Note: I had to add "path" above, as the terminal in Sublime was using a different PATH, my other attempts at adjusting my PATH were unsuccessful. Also see the build system reference for more details.

Copy link

MadSc1 commented Jan 12, 2015

I also had to add the line as suggested above,
"path" : "/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin"
Even though I already set up my symbolic links in terminal properly = Yes, I can run "python3" from any location...
To hammer it in farther... When I type
"echo $PATH"
it returns

Yes, I am new at development. However, from logical deduction I ponder if sublime text 3 is not using ~/.bash_profile, or the system paths(??did I say that right?) as we might be drawn to assume... Then again... I am still at noob level, ,, but ya, adding the "path" line as suggested by 'farinspace' did the trick for me - OS X 10.9.5

Copy link

muktyas commented Aug 6, 2015

Hi All, I new on sublime. How to add that code into sublime?
Okay, tools, build system, new build system.. and replace all content to andrewheiss's code. Thanks.

Copy link

hanie2014 commented Dec 9, 2015


Copy link

pudovmaxim commented Oct 5, 2016

For some language (for example russian) whitespace symbols can be found in path:
/home/username/Рабочий стол/
and "cmd" : ["$file"], not works correctly. I recommend add quotes and chmod for set permissions
"cmd" : ["chmod +x \"$file\" && \"$file\"" ],

Copy link

JosjaVanBever commented Dec 1, 2018

If one wants to also have a "debug mode", a simple variant is

    "cmd": ["bash", "$file"],
    "selector": "",

            "name": "Debug",
            "shell_cmd": "/bin/bash -xv \"${file}\""

note the escaped quotation marks to avoid issues with spaces etc. in the file name

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment