Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 envpathp 명령입니다.
프로그램:
이름
envpath - 경로 변수에 대한 고급 작업
개요
사용법 세부사항을 보려면 "-help" 옵션과 함께 이 스크립트를 실행하십시오.
기술
명령줄을 구문 분석하고, 지정된 경로 변수를 수정하고, 나머지를 실행합니다.
인수. 모드는 XNUMX가지가 있는데, 간편한 설치 그리고 많은:
단순한 모드
단순 모드는 경로 지정을 위한 플랫폼 독립적인 대체 구문을 제공합니다.
여기서 경로 구분 기호는 ","이고 환경 변수는 @NAME@으로 확장될 수 있습니다.
예를 들어
envpath PATH=@PATH@,/usr/ucb -- printenv PATH
$PATH 및 execs에 "/usr/ucb"를 추가합니다. 인쇄 PATH. "--"는 선택 사항입니다.
각각 "+=" 또는 "=+"를 사용하여 앞에 추가 또는 추가를 지정할 수도 있습니다.
# /usr/ucb를 맨 앞에 위치시킵니다.
envpath PATH+=/usr/ucb -- printenv 경로
# /usr/ucb를 맨 뒤에 위치시킵니다.
envpath 경로=+/usr/ucb -- printenv 경로
단순 모드에는 이 스크립트만 필요합니다. Env::Path를 설치할 필요는 없습니다.
고사양 모드
고급 모드는 기본적으로 Env::Path 기능에 대한 명령줄 액세스를 제공합니다(참조).
설치해야 하는 것입니다. "-E" 플래그는 작동할 경로 변수와 기타 경로 변수를 선택합니다.
플래그는 이에 대한 작업을 지정합니다. 예:
envpath -E MANPATH -A / TMP -R / usr / 공유 / 사람 -N -U -- 이런...
MANPATH를 사용하여 추가합니다. / TMP 이에 대해 "에 대한 참조를 모두 제거하세요./ usr / 공유 / 사람", 제거하다
존재하지 않는 모든 디렉토리("-N") 및 실행 전에 중복 항목("-U") 제거 사람.
-Whence 옵션은 패턴을 허용합니다. 따라서
envpath -W "고양이*"
PATH에서 cat*와 일치하는 모든 프로그램을 찾습니다.
클리어케이스 윈킨스
이 스크립트에 대한 동기의 큰 부분은 ClearCase 빌드와 함께 사용하는 것이었습니다. 당신이라면
ClearCase에 대해 알고 있거나 관심을 갖고 읽어보세요. 일반적으로 빌드하는 동안(빌드뿐만 아니라
ClearCase), PATH, CLASSPATH 및 LD_LIBRARY_PATH와 같은 경로 변수는 엄격하게
통제. 한 가지 선택은 이러한 정적 값을 환경에 강제로 적용하는 것입니다.
빌드 프로세스와 다른 하나는 단순히 사용자가 경로를 적절하게 설정하도록 요구/기대하는 것입니다.
그러나 이들 각각은 미묘한 빌드 또는 런타임 오류로 이어질 수 있으며
새로운 사용자의 개인 환경도 그럴 것이기 때문에 빠르게 적응할 수 있습니다.
또 다른 일반적인 선택은 의존성을 피하면서 Makefile 내에서 전체 경로 이름만 사용하는 것입니다.
검색 경로에 전혀 없습니다. 이는 종종 가장 좋은 방법이지만 ClearCase를 억제할 수 있습니다.
윙킨스. 예를 들어, 바이너리를 사용하여 특정 유형의 ASCII 파일을 생성한다고 가정해 보겠습니다.
방금 빌드한 실행 파일:
$(INCDIR)/foo.h: $(BINDIR)/foomaker $(BINDIR)/foomaker ...
문제는 $(BINDIR)에 'solaris'와 같은 플랫폼 부분이 포함될 가능성이 높다는 것입니다.
또는 'hpux'는 다른 플랫폼에서도 foo.h 파일에서 윙크하는 것을 불가능하게 만듭니다.
비록 아스키지만요. 표준 사전 구축 유틸리티를 사용해도 이와 동일한 문제가 발생할 수 있습니다.
그것은 다른 플랫폼의 다른 장소에 있습니다. 예를 들어 "yacc"는 / usr / bin on
Linux 및 Solaris의 /usr/ccs/bin.
즉시 경로를 수정할 수 있습니다.
$(INCDIR)/foo.h: $(BINDIR)/foomaker PATH=$(BINDIR)$(SEP)$$PATH foomaker ...
그러나 이것은 동일한 문제를 안고 있습니다. $(BINDIR) 및 $PATH가 문자 그대로 확장되기 때문입니다.
빌드 스크립트 내에서는 윙킨을 억제합니다. 다음은 다음을 사용하는 솔루션입니다. 환경 경로:
$(INCDIR)/foo.h: $(BINDIR)/foomaker envpath PATH=@BINDIR@,@PATH@ foomaker ...
이는 BINDIR 및 PATH의 평가를 숨깁니다. 클리어메이크 아무것도 보지 못하지만
리터럴을 사용하여 winkins의 필드를 지웁니다. 물론 환경 경로 할 수 있다
이것보다 더 많지만 그것이 쓰여진 원래 이유입니다.
onworks.net 서비스를 사용하여 온라인으로 envpathp 사용