새로운 별칭과 함수를 정의한 후 별칭과 함수를 새로 고치겠습니까? 별칭을 정의 하거나 파일에 새 함수를 정의

.bash_aliases파일에 새 별칭을 정의 하거나 파일에 새 함수를 정의 .bashrc하면 터미널을 닫지 않고 새 별칭 또는 함수를 즉시 사용할 수있는 refresh 명령이 있습니까? 그리고 작업 중간에)?



답변

변경된 파일을 소싱하면 다음과 같이 현재 터미널에서 새로 작성된 별명 또는 기능에 액세스 할 수 있습니다.

source ~/.bashrc

대체 구문 :

. ~/.bashrc

터미널에서 여러 개의 bash 인스턴스가 실행중인 경우 (여러 탭을 언급 했음) 모든 인스턴스에서이를 실행해야합니다.


답변

. ~/.bashrc명령 행에 입력 하면 .bashrc해당 파일에 정의 된 모든 함수가 작성됩니다.

.bashrc그런 다음 이 코드가 포함되어 있으면 호출하고 실행합니다 .bash_aliases(있는 경우 ) .bashrc.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

반면 . ~/.bash_aliases명령 줄에서 단독으로 사용 .bash_aliases하면 .bashrc를 사용하지 않고 시도하고 실행 하며 파일이 존재하지 않으면 오류가 발생합니다 (따라서 파일 검사는에있을 때 .bashrc).


답변

때로는 별명을 함수로 바꾸고 싶지만 bashrc 파일을 소스 할 때 이상한 오류가 발생할 수 있습니다.

. ~/.bashrc
bash: /home/username/.bashrc: line 38: syntax error near unexpected token `('
bash: /home/username/.bashrc: line 38: `hello_world() {'

별칭 이름이 새로 정의 된 함수의 이름과 충돌하기 때문에 이런 일이 발생할 수 있습니다. 내가 아는 한, 이것을 피하려면 모든 것을 unalias해야하며 bashrc 파일을 소스로 사용하십시오.

bash-4.3 $
unalias -a && . $HOME/.bashrc


답변