JCLOUDS-1189: Handle arguments with spaces
diff --git a/assembly/src/main/filtered-resources/unix/bin/jclouds b/assembly/src/main/filtered-resources/unix/bin/jclouds
index e598ae6..7a9721f 100644
--- a/assembly/src/main/filtered-resources/unix/bin/jclouds
+++ b/assembly/src/main/filtered-resources/unix/bin/jclouds
@@ -44,8 +44,7 @@
 }
 
 run() {
-    CMD="$KARAF_HOME/bin/shell jclouds:$CATEGORY-$ACTION ${@:3}"
-    exec $CMD
+    exec $KARAF_HOME/bin/shell jclouds:$CATEGORY-$ACTION "${@:3}"
 }
 
 main() {
diff --git a/runner/src/main/java/org/jclouds/cli/runner/Main.java b/runner/src/main/java/org/jclouds/cli/runner/Main.java
index 6eaaf32..efc5cbf 100644
--- a/runner/src/main/java/org/jclouds/cli/runner/Main.java
+++ b/runner/src/main/java/org/jclouds/cli/runner/Main.java
@@ -254,7 +254,12 @@
                 if (i > 0) {
                     sb.append(" ");
                 }
-                sb.append(args[i]);
+                if (args[i].contains(" ")) {
+                    // quote arguments with spaces
+                    sb.append("\"").append(args[i]).append("\"");
+                } else {
+                    sb.append(args[i]);
+                }
             }
 
             // Shell is directly executing a sub/command, we don't setup a terminal and console