执行《学习Bash Shell第3版》fc命令示例触发out of range报错问询
fc命令报错原因说明
核心原因
fc -l后跟字符串参数时,逻辑是从当前命令历史倒序匹配以该字符串开头的最近一条命令,作为要列出的历史范围起点。
你执行的fc -l cp命令需要匹配历史中以cp开头的命令,但你当前的历史记录只有4条echo开头的条目,没有符合匹配规则的命令,因此fc无法定位到合法的历史范围,就会抛出history specification out of range报错。
补充说明
书中给出的
fc -l cp > lastcommands是演示场景的示例代码,默认读者的历史记录中存在至少一条cp开头的命令,不能直接无前提照搬执行。
可执行的测试命令
如果要在你当前的环境测试该功能,可以替换成匹配你现有历史的字符串参数:
# 匹配所有echo开头的历史命令写入文件 fc -l echo > lastcommands
如果要导出全量历史记录,直接执行:
fc -l > lastcommands
内容的提问来源于stack exchange,提问作者user16711485
相关产品推荐
相关产品推荐

