별칭을 생성하는 Bash 함수가 끝없이 호출됩니다.

별칭을 생성하는 Bash 함수가 끝없이 호출됩니다.

확장 변수가 포함된 문자열을 내 끝에 추가하기 위해 다음 Bash 함수를 실행했습니다 bashrc.

alias() {
    echo "alias $repo=\"$HOME\"/$repo/$repo.sh" >> "$HOME"/.bashrc
    source "$HOME"/.bashrc 2>/dev/null
}
alias

실행하려면 복사해서 Bash 터미널에 붙여넣고(한 번 나타남) 클릭으로 실행했습니다 Enter.

내가 얻는 결과 ~/.bashrc는 대략위 문자열의 행:

별칭 $repo=\"$HOME\"/$repo/$repo.sh

마지막 명령( source /home/user/.bashrc)은 끝없이 계속 실행되었으므로(함수에 대한 끝없는 호출로 인해 가정함) ^C키 조합을 사용하여 즉시 중단했습니다.


Nano 및 잘라내기 작업을 사용하여 수천 개의 문자열 중복을 모두 제거한 후 mark-set왜 이런 일이 발생하고 계속 발생하는지 묻고 싶습니다.

답변1

라는 함수를 정의하고 alias호출에 한 줄을 추가한 다음 셸(함수가 이미 정의되어 있는 곳)에 소스 코드를 입력합니다. 다른 줄을 추가하는 함수를 호출하고 함수를 다시 호출하는 스크립트를 다시 가져옵니다..bashrcalias ....bashrcalias이미 매번 한 번씩 실행됨, 기하급수적인 성장으로 이어집니다.

함수 이름을 변경합니다.

관련 정보