확장 변수가 포함된 문자열을 내 끝에 추가하기 위해 다음 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
호출에 한 줄을 추가한 다음 셸(함수가 이미 정의되어 있는 곳)에 소스 코드를 입력합니다. 다른 줄을 추가하는 함수를 호출하고 함수를 다시 호출하는 스크립트를 다시 가져옵니다..bashrc
alias ...
.bashrc
alias
이미 매번 한 번씩 실행됨, 기하급수적인 성장으로 이어집니다.
함수 이름을 변경합니다.