Bash

為什麼歷史命令在腳本文件中什麼都不做?

  • June 18, 2019

如果我創建一個包含

#!/bin/bash 
history

並執行它,我沒有得到任何輸出。在終端中手動執行它或source輸入腳本文件確實會產生輸出。

為什麼history不能從文件工作?

第二個命令確實“工作”,但未為非互動式 shell 啟用歷史記錄,這就是它在腳本中不返回任何內容的原因。

在非互動式 shell 中測試預設值:

nohistory.sh:

#!/bin/bash
set -o | grep history
history

結果:

$ ./nohistory.sh
history         off

啟用歷史記錄set -o history

history.sh:

#!/bin/bash
set -o history
set -o | grep history
history

結果:

$ ./history.sh
history         on
   1  set -o | grep history
   2  history

引用自:https://unix.stackexchange.com/questions/127551