我试图学习 bash 并输入一些命令,现在每次我输入类似 的内容ls
,shell 首先打印出来,然后打印出文件列表。如何恢复到之前执行的命令不被回显的状态?
目前的行为
$ ls
ls
sleepy.sh
以前的行为
$ ls
sleepy.sh
答案1
这很可能是由于在 shell 中使用set -v
或启用了“详细”模式set -o verbose
。如果使用或-v
中的选项启动 shell,您也将进入此模式。在这种模式下,shell 在执行每个命令之前都会打印出它。bash -v
bash -o verbose
您可以使用set +v
或禁用此模式set +o verbose
。
如果您看到此行为是新的shell,即当您打开一个新终端时,您的或文件中的某处就会有set -v
或。删除它并重新开始。set -o verbose
~/.bashrc
~/.bash_profile
来自评论,很明显,这确实是由于启动 shell 时bash -v
相信这会输出bash
.
shell的版本bash
可以通过或通过在 shell 中bash --version
输出 的值来获得。$BASH_VERSION