2017-05-17 1 views
1

bash 쉘 스크립트는 실행 한 명령의 내역을 그대로 두십시오 (예 : .bash_history)?bash 쉘 스크립트는 명령 기록을 남겨 둡니까?

나는 그것에 대해 궁금합니다.

+0

환경 변수'HISTCONTROL = ignorespace'를 설정하면'$ 명령 '과 같이 선행 공백이있는 명령은 기록에 저장되지 않습니다. – thatseeyou

+0

@thatseeyou, 대화 형 또는 비 interective bash 쉘용입니까? 스크립트의 경우에도 마찬가지입니까? 내 bash는 쉘 스크립트에서'$'- dollar-space 특수 변수로 시작하는 것을 허용하지 않습니다. – osgx

+0

@osgx'$'는 프롬프트입니다. + 명령 만 입력 할 수 있습니다. – thatseeyou

답변

1

아니, 그렇지 않습니다 : https://www.gnu.org/software/bash/manual/html_node/Bash-History-Facilities.html

9.1 배쉬 역사 시설

(set 내부 참조)을 사용 내장 세트에 -o history 옵션, 쉘 명령에 대한 액세스를 제공

history, 이전에 입력 된 명령의 목록

set -o 명령을 사용하십시오. interactive shells (bash의 옵션 -i 또는 로그인 또는 터미널의 일반 bashes)에서는 history on을 인쇄합니다. 스크립트 (bash -c 'set -o' 또는 tty 할당없이 ssh machine bash을했을 때)에서 사용되는 경우 설정되지 않습니다 : history off.

6.3.3

https://www.gnu.org/software/bash/manual/html_node/Interactive-Shell-Behavior.html

대화 형 쉘 동작 - 쉘이 대화 형으로 실행 중일 때, 그것은 여러 가지 방법으로 동작을 변경합니다.

  1. 명령 기록 (Bash 기록 기능 참조) 및 기록 확장 (기록 상호 작용 참조)은 기본적으로 사용됩니다. Bash는 히스토리가있는 쉘이 종료 될 때 $ HISTFILE에 의해 명명 된 파일에 명령 히스토리를 저장합니다.

역사는 여러 가지 명령과 스크립트에서 사용할 수 있습니다 : https://askubuntu.com/questions/546556/how-can-i-use-history-command-in-a-bash-script/https://unix.stackexchange.com/questions/5684/history-command-inside-bash-script은 - set -o history으로 사용하도록 설정 한 다음 history 명령을 사용 HISTFILE (선택 사항) HISTTIMEFORMAT을 설정합니다.

+0

bash 스크립트를'source script_name' 명령 (또는 같은'. script_name')으로 실행하는 것에 관해서는 확실치 않습니다 - http://stackoverflow.com/questions/9970058/#comment12738096_9970078 - 그것은 현재 배쉬의 컨텍스트에서 실행되며 * 일부 * 역사 플래그가 활성화되어 있습니다 (실제로 내가 기억하는 것처럼 .bash_history에 명령을 넣지 않습니다). 또한 - 서브 쉘은 어떨까요 :'(some_command;)'? – osgx

관련 문제