从bash脚本调用历史时“历史位置超出范围”

Ada*_*dam 4 bash command-history

我想制作一个简单的脚本bash_history,根据用户输入的行号从 中删除一行。

echo -n "Delete History Line Number: "
read num
history -d $num
Run Code Online (Sandbox Code Playgroud)

错误是“历史位置超出范围”(它不应该是,我使用的是范围内的数字)。

为什么这不起作用?

les*_*ana 8

您的脚本无法按预期工作的原因有两个:

  1. 运行脚本的 bash 环境是“非交互式的”,并且没有启用历史功能。
  2. 运行脚本的 bash 环境独立于您交互工作的环境。

根据您的用例,最简单的解决方案可能是获取脚本,而不是执行。有关更多信息,请参阅解释采购和执行差异的 SU 帖子