Bash에서 별칭에 추가 인수를 포함시키지 않는 방법은 무엇입니까? 때문 입니다 echo. Bash abcd.com가 대체에 추가하지

나는 같은 것을하려고합니다.

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.

Bash abcd.com가 대체에 추가하지 않거나 추가 echo인수로 사용 하지 않는 방법이 있습니까? (각 접근법마다 해결책이 있습니까?)

나는 그것을 만들 수 있다고 생각

alias ftp='sftp'

그러나 나는 명령을 모두 멈추게하여 사용하지 말 것을 상기시키고 자한다 ftp.



답변

별칭을 정의하면 설정 한 명령이 사용자가 작성한 별칭 대신 실행됩니다. 이것은 당신이 실행할 때 ftp abc.com실제로 실행되는 것은

echo do not use ftp. Use sftp instead abc.com

간단한 해결책은 별명 대신 함수를 사용하는 것입니다.

ftp(){ echo 'do not use ftp. Use sftp instead'; }

또는 printfCostas가 제안한대로 사용할 수 있습니다 .

alias ftp="printf 'do not use ftp. Use sftp instead\n'"

답변

alias ftp='echo do not use ftp. Use sftp instead. # '

답변

#별칭 문자열 끝에 공백과 주석 문자 를 넣으십시오 .

alias ftp='echo do not use ftp. Use sftp instead. #'
ftp abcd.com
do not use ftp. Use sftp instead.

그러면 매개 변수가 주석으로 처리됩니다. 공간을 추가하기 전에 공백을 추가하는 것을 잊지 마십시오. #그렇지 않으면 별명 확장 후 별도의 토큰으로 해석되지 않습니다.