“history -p”有什么作用?

Riz*_*izz 5 shell posix

我正在编写一个 shell 作为学校项目。内置命令中有一个“历史”命令和一些选项,例如用于清理的“-c”或用于在历史记录中添加参数的“-s”。其中一个选项是“-p”,那个人说:

-p 对参数执行历史替换并将结果显示在标准输出上,而不将结果存储在历史列表中。

我真的不明白这个选项是做什么的。当我尝试它时,它显示参数并且不执行任何其他操作。

有人知道吗?

Aks*_*gde 2

-p 对参数执行历史替换并将结果显示在标准输出上,而不将结果存储在历史列表中。

这是示例,说明了它的实际作用

# clear history
$ history -c

# call date - this will be saved in history
$ date
Tue Oct  3 23:47:24 IST 2017

# call call - this also will be saved in history
$ cal
    October 2017      
Su Mo Tu We Th Fr Sa  
 1  2  3  4  5  6  7  
 8  9 10 11 12 13 14  
15 16 17 18 19 20 21  
22 23 24 25 26 27 28  
29 30 31              

# see what all saved so far
$ history
  996  date
  997  cal
  998  history

# see this prints string on stdout, but doesn't save in history
$ history -p "This is test string which is not stored in history"
This is test string which is not stored in history

#  as you can see history -p "....." is missing
$ history
  996  date
  997  cal
  998  history
Run Code Online (Sandbox Code Playgroud)