我试图学习 bash 并输入一些命令,现在每次我输入类似的东西ls,shell 首先打印出来,然后打印出文件列表。如何恢复到不回显执行的命令的先前条件?
当前行为
$ ls
ls
sleepy.sh
Run Code Online (Sandbox Code Playgroud)
以前的行为
$ ls
sleepy.sh
Run Code Online (Sandbox Code Playgroud)
这很可能是由于在 shell 中使用set -v或启用了“详细”模式set -o verbose。如果您使用-v选项启动 shell,您也将进入此模式,如bash -v或bash -o verbose。在这种模式下,shell 会在执行之前打印出每个命令。
您可以使用set +v或禁用此模式set +o verbose。
如果您看到此行为是一个新的外壳,即当你打开一个新的终端,那么你set -v或者set -o verbose你的某个地方~/.bashrc或~/.bash_profile文件。删除它并重新开始。
从评论中可以清楚地看出,这确实是由于bash -v相信这将输出bash.
bash外壳的版本可以通过bash --version,或通过$BASH_VERSION在外壳中输出 的值来获得。