나는 다음과 같은 것을하려고 노력하고 있습니다.
alias ftp='echo do not use ftp. Use sftp instead.'
우발적인 사용을 방지하기 위해 ftp
. 하지만 난 눈치챘어
ftp abcd.com
명령이 에코되도록 합니다.
do not use ftp. Use sftp instead. abcd.com
abcd.com
인수가 검토되고 있기 때문입니다 echo
.
abcd.com
Bash 에서 대체 항목을 추가하지 않거나 echo
추가 인수로 받아들이는 방법이 있습니까 ? (각 방법에 대한 해결책이 있나요?)
난 내가 할 수 있을 거라 생각했어
alias ftp='sftp'
그러나 나는 명령을 사용하지 말 것을 상기시키기 위해 명령을 모두 중지하고 싶습니다 ftp
.
답변1
별칭을 정의하면 작성한 명령이 아닌 설정한 명령이 실행됩니다. 즉, 을 실행할 때 ftp abc.com
실제로 실행되는 내용은 다음과 같습니다.
echo do not use ftp. Use sftp instead abc.com
간단한 해결책은 별칭 대신 함수를 사용하는 것입니다.
ftp(){ echo 'do not use ftp. Use sftp instead'; }
또는 printf
Costas의 제안에 따라 다음을 사용할 수 있습니다.
alias ftp="printf 'do not use ftp. Use sftp instead\n'"
답변2
alias ftp='echo do not use ftp. Use sftp instead. # '
답변3
#
별칭 문자열 끝에 공백과 주석 문자를 추가하면 됩니다.
alias ftp='echo do not use ftp. Use sftp instead. #'
ftp abcd.com
do not use ftp. Use sftp instead.
이렇게 하면 매개변수가 주석으로 처리됩니다. 앞에 공백을 추가하는 것을 잊지 마십시오. #
그렇지 않으면 별칭 확장 후에 별도의 토큰으로 해석되지 않습니다.