파이프와 매개변수를 사용하여 명령에 별칭을 지정할 때 발생하는 문제

파이프와 매개변수를 사용하여 명령에 별칭을 지정할 때 발생하는 문제

참고: 저는 tcsh를 사용합니다.

mutt 명령을 사용하여 미리 작성된 본문과 제목 줄이 포함된 이메일을 보내는 별칭을 만들려고 하는데 이렇게 하면 별칭 매개변수를 가져와 이메일에 추가하게 됩니다. 현재 내가 가진 최고는 다음과 같습니다.

alias emailattach 'echo "Message Body" | mutt -a \!:1 -s "Subject" [email protected]'

이 별칭은 아무런 불만 없이 잘 설정되었지만 실행하려고 하면 다음 메시지가 나타납니다.

Can't stat [email protected]: No such file or directory
[email protected]: unable to attach file.

삭제하면 -a \!:1 더 이상 오류 메시지가 표시되지 않으므로 별칭의 이 부분에 문제가 집중된 것으로 생각됩니다. 첨부하라고 말씀드리는 파일은 emailattach실제 첨부 가능한 파일(특히 PDF)이므로 문제가 되지 않습니다.

또한 동일한 별칭을 시도했지만 작은따옴표 없이 다음 오류가 발생했습니다.

[email protected]: unable to attach file.

파이프가 문제의 핵심인지 확인하기 위해 다음을 시도했습니다.

alias emailattach mutt -a \!:1 -s "Subject" [email protected]

그런 다음 다음을 실행해 보세요.

echo "Message Body" | emailattach /path/to/attachment

처음에 나열한 것과 동일한 오류 메시지( can't stat... )가 표시됩니다. unable to attach file.그러나 방금 실행하면 다음과 같습니다.

echo "Message Body" | emailattach 

다음 오류가 발생합니다.

Bad ! arg selector.

제 생각에는 이것은 필수 매개변수를 입력하는 것을 잊어버린 버그일 뿐입니다.

작동하지 않는 별칭에 무엇을 잘못 썼습니까?

답변1

alias통화 중 첨부 파일이 마지막에 표시되도록 mutt다음과 같이 주변 환경을 변경해 보세요 .

$ alias emailattach 'echo "Message Body" | mutt -s "Subject" [email protected] -a \!:1'

이것은 나에게 잘 작동합니다.

관련 정보