public GfshScript withName(String name) {
    assertThat(name).doesNotContain(" ");
    this.name = name;
    return this;
  }
All the commands represented in this script are executed within one gfsh session.

<p>
All the commands in this script are executed using this bash command:<br>

<pre>
gfsh -e command1 -e command2 -e command3 ....
</pre>

<p>
You can chain commands together to create a GfshScript<br>

<pre>
GfshScript.of("command1").and("command2").and("command3", "command4")
</pre>

<p>
If your command started another process and you want that process to be debuggable, you can do:

<pre>
GfshScript.of("start locator", 30000).and("start server", 30001)
</pre>

This will allow locator to be debuggable at 30000 and the server to be debuggable at 30001.

<p>
By default, each script awaits at most 5 minutes for all the commands to finish and will expect
success. If you want to change this, you can use:

<pre>
gfshScript.awaitAtMost(1, TimeUnit.MINUTES).expectFailure()
</pre>

<p>
If you want this gfsh session to be debuggable, you can use:

<pre>
gfshScript.withDebugPort(30000)
</pre>

This will allow gfsh to be debuggable at port 30000.
geode-junit/src/main/java/org/apache/geode/test/junit/rules/gfsh/GfshScript.java