--init-file에 `history -r`을 설정하세요.

--init-file에 `history -r`을 설정하세요.

bash 쉘에 들어가면

touch $HOME/tmp
echo "last thing" >> $HOME/tmp
history -r $HOME/tmp

그런 다음 위쪽 화살표를 클릭하면 "마지막 사항"이 표시됩니다.

동일한 줄을 스크립트에 붙여넣고 스크립트를 가져오면 동일한 결과를 얻습니다.

하지만 이렇게 하면 작동하지 않습니다.

bash --init-file <(echo "history -r $HOME/tmp")

답변1

--init-file${HISTFILE:-$HOME/.bash_history}먼저 처리한 후 콘텐츠를 정상적으로 로드하세요. 파일에 $HISTSIZE항목이 포함된 경우(일반적인 경우) 로드된 항목은 history -r tmp기록 목록의 시작 부분에서 밀려나 손실됩니다.

다음 변형이 저에게 효과적이었습니다(CentOS 4.1.2에서).

bash --init-file <(echo history -r temp; echo HISTFILE=/dev/null)
# in new shell history contains only the line(s) from temp

bash --init-file <(echo history -r temp; echo let HISTSIZE+=100)
# in new shell history contains the line(s) from temp THEN .bash_history

관련 정보