# Shell规则

可以说，在处理引号的时候最复杂的组件是 shell。不过，每一个规则都很简单：

* shell 的命令由 keys (--something) 和相应的值组成。不过，也有一种特殊的 key 无需映射，稍后将对此进行描述。
* 值一般不能包含空格，因为空格是命令的默认分隔符。
* 不过，可以通过在值的周围加上引号(单引号(')或双引号(")来添加空格。
* 在部署属性内部传递的值(例如 `deployment  --properties " …​"`)不应该再次引用。
* 如果用引号括起来，值可以通过使用反斜杠(\\)作为前缀嵌入相同类型的引号。
* 其他转义也是可用的，比如\t、\n、\r、\f和\uxxxx格式的unicode转义。
* 无 keys 映射以一种特殊的方式处理，这样就不需要引用来包含空格。

例如，shell支持`!`来执行本机的shell命令。`!`接受一个无keys映射的参数。这就是下面命令为什么能工作的原因:

```bash
dataflow:>! rm something
```

这里的参数是整个`rm something`字符串，它按原样传递给底层shell。

另一个示例，以下命令具有相同的效果，参数值为`something`（不带引号）：

```bash
dataflow:>stream destroy something
dataflow:>stream destroy --name something
dataflow:>stream destroy "something"
dataflow:>stream destroy --name "something"
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cxz.gitbook.io/spring-cloud-date-flow/shell/untitled-5/untitled-4.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
