如果命令超过 1 行,如何在 shell 或 bash 中输入新行/移动到下一行而不执行命令?

8 linux bash terminal command-line-interface azure

因此,我尝试按照有关创建 Azure VM 的教程进行操作,整个教程都来自 CLI。它是专门使用 bash 的。我对使用 CLI 几乎一无所知,所以它非常令人生畏。无论如何,所有命令在教程中都是这样的:

az vm create \
  --resource-group myResourceGroup \
  --name myVM \
  --image UbuntuLTS \
  --admin-username azureuser \
  --generate-ssh-keys
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试创建一个新行并转到该新行以输入参数/参数时,它会继续尝试执行命令,但我无法执行任何内容,因为显然我输入的内容缺少参数:

az vm create \ --resource-group ShahVMAzureUB \ --name ShahVM \ --imageUbuntuLTS \ --admin-username shahjacob \ --generate-ssh-keysaz vm create
: error: the following arguments are required: --name/-n, --resource-group/-g
Run Code Online (Sandbox Code Playgroud)

Sie*_*geX 7

引用手册页

如果\<newline>出现一对,并且反斜杠本身没有被引号引起来,\<newline>则将其视为行延续(即,将其从输入流中删除并有效地忽略)。

因此,在键入 后,您实际上需要一个换行符(按)来告诉 shell 您要在单独的行上输入更多参数。ENTER\

一般来说,这用于打印(甚至 Stackoverflow 答案),因此您不会遇到难以理解的巨行。如果您希望将所有内容都放在一行中,请删除\参数之间的内容。

  • @ShahJacob 准确输入:`echo foo`,然后输入反斜杠`\`,然后按 ENTER 键。此时 shell 应该等待更多由“&gt;”表示的输入。然后输入“bar”,然后再次按 ENTER 执行命令(因为没有反斜杠)。即使“foo”和“bar”位于两个不同的行,您也应该看到输出为“foobar” (2认同)