사용자가 구성 해야하는 몇 가지 변수가있는 쉘 스크립트를 작성 중입니다. 스크립트를 다운로드하고 구성하기위한 설치 프로그램이있을 것입니다. 일련의 질문을 할 수도 있습니다. 문제의 스크립트는 다른 개발자를 대상으로합니다.
여러 가지 방법으로 구현할 수 있습니다.
스크립트 자체에서 자리 표시자를 사용
sed
하고 설치 중에이를 대체하는 데 사용 하십시오 ( /programming/415677/how-to-replace-placeholders-in-a-text-file )장점 : 모든 변수 정의는 스크립트 내에 포함되어 있습니다. 스크립트를 수동으로 쉽게 다운로드하고 설치 프로그램보다 편집기를 선호하는 사용자를위한 변수를 구성 할 수 있습니다.
단점 : 변수가 일단 설치되면 설치 프로그램을 통해 변수를 재구성하기가 어렵습니다. 오류가 발생하기 쉬운 복잡한 정규 표현식을 만들지 않으면
기본적으로 할당이있는 다른 쉘 스크립트 인 config 파일을 사용
source
하여 포함 시키십시오. (그리고 아마도 그것을 배치~/.scriptname
할까요? 메인 스크립트는에 복사됩니다/usr/local/bin
)장점 : 스크립트를 쉽게 재구성 할 수 있습니다. 기본 스크립트에서 매개 변수를 추가 할 수도 있습니다 (첫 번째 솔루션에서도 작동하지만 스크립트 자체를 편집하는 것은 좋은 생각이 아닙니다)
단점 : 이제 스크립트는 두 파일에 종속되며 구성 파일을 만들려면 설치 관리자를 실행해야합니다. 구성 파일이 없으면 자동으로 생성하여 해결할 수 있습니다. 그러나 스크립트를 다운로드하고 편집하여 완료하려는 사용자에게는 외부 구성 파일을 찾는 것이 여전히 번거로울 것입니다.
또한 설치 후 사용자가 구성을 관리하는 방법에 관한 몇 가지 옵션이 있습니다.
Git
$ myscript config server.host example.org $ myscript config server.proxypath / home / johndoe / proxy $ myscript config 서버 .httppath / home / johndoe / web대화식
$ myscript config
서버 호스트 이름을
입력하십시오 . example.org 서버 에서 프록시의 경로를 입력하십시오. / home / johndoe / proxy
서버에서 http 디렉토리의 경로를 입력하십시오. / home / johndoe / web긴 옵션을 가진 getopts
$ myscript --host example.org --proxypath / home / johndoe / proxy --httppath / home / johndoe / web간단한
$ myscript 설정 example.org / home / johndoe / proxy / home / johndoe / web
고려할 다른 방법이 있습니까?
모범 사례, 우아한 것이 있습니까?