명령줄 프로그램을 실행할 때 기본적으로 이를 전달하고 싶습니다.
myprog --foo=bar
내가 생각할 수 있는 해결책은 "bin" 폴더에 사용자 정의 "myprog" 래퍼를 추가하는 것입니다.
#! /bin/sh
/usr/bin/myprog --foo=bar $@
좋은 점은 시스템을 설정했기 때문에 bin 폴더가 대화형 셸과 GUI 응용 프로그램 모두의 PATH에 있으므로 어디에서든 myprog를 호출하면 기본적으로 --foo 플래그가 전달된다는 것입니다. 응용프로그램 메뉴에서 myprog를 선택하세요.
그러나 나는 래퍼 스크립트에서 절대 경로를 사용하는 것을 좋아하지 않습니다 /usr/bin/myprog
(그렇지 않으면 무한 루프에 빠집니다). 더 좋은 방법이 있나요?
답변1
당신은 그것을 사용할 수 있습니다 alias
. 에서 man sh
:
별칭 별칭은 alias(1) 내장 명령을 사용하여 설정한 이름과 해당 값입니다. 예약어가 나타날 수 있을 때마다(위 참조) 예약어를 확인한 후 쉘은 해당 단어가 별칭과 일치하는지 확인합니다. 그렇다면 입력 스트림의 값으로 대체됩니다. 예를 들어, 값이 "ls -F"이고 이름이 "lf"인 별칭이 있는 경우 다음을 입력합니다.
lf foobar ⟨return⟩
would become
ls -F foobar ⟨return⟩
별칭은 초보자 사용자에게 매개변수를 사용하여 함수를 만드는 방법을 배우지 않고도 명령 약어를 만드는 편리한 방법을 제공합니다. 어휘적으로 모호한 코드를 만드는 데에도 사용할 수 있습니다. 이 사용은 권장되지 않습니다.