저는 Mac OS X를 사용하고 있으며 일반적으로 터미널에서 PDF 파일을 엽니다(bash 사용).
open myfile.pdf
이제 타이핑만 할 수 있어요
myfile.pdf
위의 명령을 사용하여 엽니다. 이 명령을 실행하도록 bash를 구성할 수 있습니까? 이것이 PDF 파일에만 적용된다면 기쁘겠지만 보다 일반적인 솔루션도 환영합니다.
일부 키 입력을 저장하는 것만이 아닙니다. 문제를 해결하는 데 2시간이 걸린다면 두 번의 키 입력을 없애면 앞으로 몇 년 동안 그렇게 많은 시간을 절약할 수 있을지 의문입니다. 이것이 가능한지, 그리고 이를 달성하는 방법을 알고 싶습니다.
답변1
이 기능을 에 추가하는 방법이 있습니다 bash
.
파일을 "실행"하려고 하면 bash에서 command not found
오류가 발생합니다.
$ 1.pdf
bash: 1.pdf: command not found
ERR
그런 다음 "신호" 도 보냅니다 . 내장 함수를 사용하면 trap
이러한 유형의 신호를 포착하고 오류를 처리하는 함수를 정의할 수 있습니다.
존재하다그 페이지오류를 처리할 스크립트를 찾을 수 있습니다(참조:설명하다).
스크립트에는 주석이 잘 달려 있으므로 필요에 맞게 수정하는 것은 문제가 되지 않습니다.
이를 잡은 후 ERR
마지막 명령의 오류 코드를 확인합니다. 만약 그것이 틀렸다면2, 126 또는 127계속됩니다. 다음 단계에서는 마지막 명령을 확인하고 명령 부분과 매개변수로 나눕니다.
먼저 if..fi
"선행 슬래시를 잊어버릴 수 있는 오류를 처리"하여 슬래시를 제거할 수 있습니다.
다음 명령문 시작 부분에서 if
명령이 디렉터리인지 확인하므로 삭제할 수도 있습니다. 더 흥미로운 부분은 두 번째 부분입니다 if
. 스크립트는 파일 형식을 확인하고 해당 형식의 파일을 여는 방법에 대한 몇 가지 제안 사항을 인쇄합니다. 대신 open $cmd
또는 같은 것을 입력할 수 있습니다 APPLICATION_TO_OPEN_PDF $cmd
(물론 파일이 PDF인지 확인하려면 확인 표시를 추가해야 합니다).
보안 참고 사항: 이 기능을 사용하려면 APPLICATION_TO_OPEN_PDF $cmd
대신 을 사용해야 합니다 open $cmd
. 또한 일부 악성 스크립트 또는 이와 유사한 기능이 실행되지 않도록 모든 유형의 파일에 대해 open 또는 exec를 사용하는 대신 특정 파일 유형에 대한 작업을 설정해야 합니다.
이를 수행하는 또 다른 방법이 있지만 이것이 더 침해적이기 때문에 일부 문제가 발생할 수 있다고 생각합니다.
함수를 재정의 command_not_found_handle()
하고 open
거기에 체크섬을 넣을 수 있습니다. 이렇게 하면 오류 메시지가 표시되지 않지만 처리하고 싶지 않은 상황에서 오류 코드와 메시지를 어떻게 처리할지 잘 모르겠습니다.
답변2
zsh에서접미사 별칭당신의 .zshrc
:
alias -s pdf=open
zsh는 일반적으로 bash보다 더 나은 대화형 기능과 더 나은 프로그래밍 기능을 가지고 있습니다. Mac OS X 버전 10.4 이상부터 포함되어 있습니다.
답변3
open
이름에 대한 별칭을 만든 o
다음 다음을 입력 할 수 있을 것 같습니다.
o myfile.pdf
이것이 타이핑 시간을 절약해줄지는 모르겠지만 open
:-) 어떤 경우든 파일 이름을 지정해야 합니다.
따라서 별칭의 경우:
alias o="open"
당신의~/.bashrc file