어리석은 질문이라면 죄송합니다.
내 작업 공간에는 dir1, dir2, dir3 및 dirzz 4개의 디렉토리가 있습니다. 호출할 디렉터리를 결정하려면 매개변수로 별칭을 설정해야 합니다. 예를 들어
$ gotodir 1
그러면 dir1로 이동해야 합니다.
$ gotodir z
이건 나를 dirzz로 데려가야 해
나는 노력했다
alias gotodir="cd ~/home/user/dir${1}" alias gotodir='cd ~/home/user/dir$1'
하지만 둘 다 오류가 발생합니다
누구든지 도와줄 수 있나요?
답변1
~에서배쉬 매뉴얼 페이지이 alias
섹션의:
대체 텍스트에 매개변수를 사용하는 메커니즘은 없습니다. 매개변수가 필요한 경우 쉘 함수를 사용해야 합니다.
따라서 원하는 것을 수행하려면 함수를 정의하면 됩니다.
gotodir() { cd ~/dir"$1"; }
그런 다음 호출하십시오.
gotodir 1
답변2
기능을 사용할 수 있습니다~에별명:
alias gotodir='function _gtdir() { cd ~/dir${1} ; } ; _gtdir '
답변3
당신은 " gotodir z
나를 dirzz로 데려가야 한다"고 말하는데, 내가 아는 한 지금까지 게시된 답변 중 어느 것도 그렇게 하지 않습니다. 하지만 문자 하나만 변경하면 됩니다.켈룸의 답변:
gotodir() {
cd ~/dir"$1"*
}
*
추가된 와일드카드 문자에 유의하세요 . 이렇게 하면 gotodir z
홈 디렉토리의 이름이 다음과 같은 것을 볼 수 있습니다.시작( 있는 dirz
경우 디렉토리입니다).
배쉬에서 테스트되었습니다. 이것이 모든 쉘에서 작동하는지 모르겠습니다.
답변4
또 다른 가능성은 CDPATH 변수를 설정하는 것입니다. 여기에는 cd
상대 디렉터리로 전환할 때 확인할 쉼표로 구분된 디렉터리 목록이 포함되어 있습니다. 디렉토리 이름이 너무 길면 심볼릭 링크를 사용하십시오.