如何在bash脚本中使用'history-c'命令?

NAV*_*A L 6 linux shell

众所周知,'history'命令显示Linux服务器的命令行历史记录,'history -c'是清除/删除此命令行历史记录的命令.

我必须通过我的bash脚本触发此命令.脚本如下,

#! /bin/bash
var=`history -c`
if [ $? -eq 0 ]
then
echo "cleared"
echo $var
fi
Run Code Online (Sandbox Code Playgroud)

输出如下:

  cleared
Run Code Online (Sandbox Code Playgroud)

虽然它的打印"清除"为输出,但history-c不会删除历史记录.

如果你可以指导/建议如何实现这一点,那将是很好的,即在我的bahs脚本中使用"history-c"命令来删除命令行历史记录.或者还有其他方法可以删除命令行历史记录我的bash脚本.

谢谢和问候,Navya

Nik*_*nha 3

history -c清除当前 shell 的历史记录,并且不删除 ~/.bash_history。

但是,当您运行脚本时,当前 shell 会创建一个新 shell 来运行该脚本,并在脚本完成后退出该 shell。

相反,要在当前 shell 中执行脚本,您必须获取该脚本。如果脚本的名称是 foo.sh,请尝试运行. ./foo.sh

但无论哪种情况,您编写的脚本都不会执行该命令。将其修改为如下所示:

#! /bin/bash
history -c
if [ $? -eq 0 ]
then
echo "cleared"
fi
Run Code Online (Sandbox Code Playgroud)