我set -x
在终端输入。
现在终端不断打印在我的输出之上运行的最后一个命令,因此该命令
~]$echo "this is what I see"
回报
+ echo 'this is what I see'
this is what I see
没有 的手册页set
,如何关闭set -x
?
答案1
使用set +x
。更多信息:
$ type set
set is a special shell builtin
由于set
是 shell 内置命令,因此它记录在 shell 的文档中。
请注意,某些系统具有 shell 内置命令的手册页,但这些手册页仅在您使用默认 shell 时才正确。在 Linux 上,您可能有提供 POSIX 命令的手册页,这些命令将出现在 shell 内置命令中,因为没有独立实用程序的手册页来隐藏它们;这些手册页对于所有 Bourne 风格的 shell(dash、bash、*ksh 甚至 zsh)都是正确的,但通常不完整。
看阅读和搜索长手册页有关在长 shell 手册页中搜索内置函数的提示。
在这种情况下,所有 Bourne 风格的 shell 的答案都是相同的。如果打开某个选项,则将其关闭。因此,关闭痕迹。set -LETTER
set +LETTER
set +x
对于命令本身来说,最后的跟踪set +x
并不是完全可以避免的。您可以使用 抑制它{ set +x; } 2>/dev/null
,但在某些 shell 中仍然存在重定向本身的痕迹。您可以通过不运行它并让(子)shell 退出来避免跟踪set +x
:如果可以在子 shell 中运行跟踪的命令,您可以使用(set -x; command to trace; other command to trace); command that is not traced
.
答案2
您可以通过 停止调试模式set +x
。参见示例页
答案3
您已启用调试模式,需要将其关闭。
help set
从shell的输出中提取bash
:
使用 + 而不是 - 会导致这些标志被关闭。
所以输入set +x
答案4
$ set +x # is the opposite of set -x, and will reverse what you typed.
您无法在 上找到手册页set
,因为如下所示:
$ type set
set
是一个特殊的内置 shell。虽然在您的 shell 的手册页中有记录,假设这里是 bash,您还可以使用以下任一方法获取特定文档:
$ help set || builtin help set # luckily Bash has builtin help on builtin commands
bash 或 sh 的手册页很好读,但整理起来有点长。取消设置所需的有效信息-x
位于前面的末尾Exit Status:
,内容如下:
使用 + 而不是 - 会导致这些标志被关闭。这些标志也可以在调用 shell 时使用。当前的标志集可以在 $- 中找到。剩余的 n 个 ARG 是位置参数,并按顺序分配给 $1、$2、.. $n。如果没有给出 ARG,则打印所有 shell 变量。