cd
다음 디렉터리에 빠르게 액세스할 수 있도록 별칭을 설정하려고 합니다 .
/home/user/asreera/Aravind/sample/src
/home/user/asreera/Aravind/sample2/src
먼저 변수를 설정했습니다.
set use=/home/user/asreera/Aravind/
그런 다음 별칭을 설정했습니다.
alias mov 'cd $use/*/src'
내 용도는 다음과 같습니다.
mov sample
디렉토리로 이동해야 합니다 /home/user/asreera/Aravind/sample/src
.
그렇다면 mov sample2
디렉터리로 이동해야 합니다./home/user/asreera/Aravind/sample2/src
이 별칭을 사용할 때 오류가 발생합니다.cd:too many arguments
이 점에서 내가 뭘 잘못하고 있는지 말해 줄 수 있는 사람이 있나요?
답변1
다음을 사용해야 합니다.
alias mov 'cd "$use"/\!*/src'
!*
csh/tcsh에서 별칭은 실행 중인 명령에 대한 모든 인수(즉, 별칭 뒤에 입력하는 인수 mov
)를 확인합니다.
바라보다csh
별칭을 및tcsh
다른 옵션의 경우:
!!
전체 명령줄입니다!*
모두 명령의 매개변수입니다.!:1
명령의 첫 번째 매개변수입니다.!:2
명령의 두 번째 매개변수입니다.!$
명령의 마지막 매개변수입니다.
모두가 탈출해야 합니다 \
.
이 점에서 내가 뭘 잘못하고 있는지 말해 줄 수 있는 사람이 있나요?
실행할 때:
mov sample
쉘은 별칭을 다음으로 확인합니다.
cd $use/*/src sample
그런 다음 변수를 확장하고 다음을 실행합니다.
cd /home/user/asreera/Aravind//*/src sample
cd
이 명령은 매개변수가 너무 많다고 불평합니다.