我应该使用until
循环逐行从历史记录中获取前10个命令。
尝试过这样的方法:
counter=0
until [ $counter -gt 10 ]
do
echo !$counter
((counter++))
done
但是输出是docounter
的十倍。
主要问题是如何从历史中获取循环中的特定行。
发布于 2022-10-27 14:15:21
Csh风格的历史扩展是一个交互的特性,它不能在脚本中工作。
看起来你只是在找history $HISTSIZE | head -n 10
发布于 2022-10-27 14:31:09
有几种简单的方法。试试这个-
while read -r cmd; do if ((ctr++ < 10)); then echo "$cmd"; fi; done < "$HISTFILE"
或
history|head -10|mapfile -t h && for c in {0..9}; do echo "${h[c]}"; done
编辑
你在图托利亚点使用的终端有点烂。
试着这样做,并注意为什么它重要。
history | while read -r cmd; do if ((ctr++ < 10)); then echo "$cmd"; fi; done
具体来说,bash: /tmp/.bash_history: Permission denied
他们显然只允许通过history
程序访问历史文件。
https://stackoverflow.com/questions/74223390
复制相似问题