Bash에서 별칭에 추가 매개변수를 포함하지 않는 방법은 무엇입니까?

Bash에서 별칭에 추가 매개변수를 포함하지 않는 방법은 무엇입니까?

나는 다음과 같은 것을하려고 노력하고 있습니다.

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.comBash 에서 대체 항목을 추가하지 않거나 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'; }

또는 printfCostas의 제안에 따라 다음을 사용할 수 있습니다.

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.

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

관련 정보