~ / .bashrc가 실행될 때 (터미널을 열 때) 대신 런타임에 대체~/.bashrc
를 평가$()
하기 위해 별칭을 얻는 방법은 무엇입니까?
이 명령을 자주 추가하여 별칭을 추가하고 싶습니다.
svn diff -r $(svn info | grep ^Revision | awk {'print $2'}):HEAD $(svn info | grep ^URL | awk {'print $2'}) | colordiff
그러나 ~/.bashrc
별명으로 추가 하면 터미널을 열 때 평가 한 값으로 평가가 하드 코딩됩니다.
$ alias
alias svnbranch='svn diff -r 178184:HEAD svn+ssh://branches/t4252 | colordiff'
터미널을 열면 ~
오류가 발생합니다.
svn: E155007: '/home/dotancohen' is not a working copy
svn: E155007: '/home/dotancohen' is not a working copy
svn: E155007: '/home/dotancohen' is not a working copy
svn: E155007: '/home/dotancohen' is not a working copy
$ alias
alias svnbranch='svn diff -r :HEAD | colordiff'
$
에서 별칭의 두 가지 변형을 시도했지만 ~/.bashrc
예상대로 동일한 효과가 있습니다.
alias svnbranch="svn diff -r $(svn info | grep ^Revision | awk {'print $2'}):HEAD $(svn info | grep ^URL | awk {'print $2'}) | colordiff"
alias svnbranch="svn diff -r `svn info | grep ^Revision | awk {'print $2'}`:HEAD `svn info | grep ^URL | awk {'print $2'}` | colordiff"
런타임에 대체 ~/.bashrc
를 평가하기 위해 별명을 얻는 방법은$()
무엇입니까?
또한 Google에서 이러한 상황을 어떻게 검색합니까? 나는 "bashrc replacement", "bashrc lazy replacement"및 기타 핵심 문구에 대해 Google을 시도했지만 정보를 찾을 수있을 정도로 일반적인 문제라고 생각되는 것은 없습니다.
@WarrenYoung : 맞습니다.이 특정 인스턴스는 스크립트 일 수 있습니다. 그러나 다른 것들에 대한 별칭을 선호하기 때문에 여전히 답을 알고 싶습니다. 귀하의 질문을 "Bash가 스크립트가 될 수있는 경우 별칭을 지원하는 이유"로 일반화 할 수 있습니다.
—
dotancohen
왜 공감해야합니까? 질문을 어떻게 개선 할 수 있습니까? 나는 예제, 실패한 시도, 심지어 구글에 시도한 핵심 문구까지 제공했다.
—
dotancohen
@dotancohen : 별도로 요청해야한다고 생각합니다. 여기에 부분 답변을 드리겠습니다
—
워렌 영
alias cdp="cd ~/projects"
. 쉘 스크립트에서는 그렇게 할 수 없습니다.
$HOME/bin
들어갑니다PATH
.