Testing shell scripts

Hello guys,

Following Problem: I have few servers they are stored inside the Putty Application, i can connect to them over ssh and setup some things, while i have no problems with a shell at all, it feels somehow old anyways. so i decided to create a small tool where i can manage ssh servers with meta data to the server, public/private keys and shell scripts + i wanted to make phpbased midnight commander to create/edit files and navigate throught folders.

Basicly webbased Putty with additional features.

Ofc everything should be made TDD since i want to open source that project but here begins the Problem, my tests passing BUT only if i start my test virtual machines with vagrant, without vagrant my tests fail because connection to a server is not avaliable. sofar its not a big deal, just vagrant up and run the tests. but if i want to use Travis CI my tests will fail everytime i suppose.
I dont know if there is a way to setup vagrant machines for testin purpose on Travis and if there is a way, can i also cache the mashines? because vagrant up would then download the image and make a first installation so i think a test could take very long.

Mocking is not really possible because basicly what i do is to execute shell commands , parse them and display output on the website, so the businesslogic is inside concrete classes e.g UbunuShellProvider or SusueShellProvider.

So maybe someone has an idea how to create unittests for a shell script based application?

Best Regards