Perl에서 대소 문자 구분 Windows 환경 변수 설정

장 프랑수아 T.

쉘 스크립트에서 사용하기 위해 Perl에서 대소 문자를 구분하는 Windows 환경 변수를 설정하려고합니다.

그러나 Perl에서 system명령 을 사용하여 호출 한 쉘 스크립트에서 소문자로 사용하고 Msys로 실행 하려고 할 때 환경 변수가 모두 대문자 임을 알았습니다.

예를 들어, 다음 스크립트 :

#!perl

system "echo echo TOTO=\$TOTO > toto.sh";
system "echo echo Titi=\$Titi >> toto.sh";
system "echo echo TITI=\$TITI >> toto.sh";
$ENV{'TOTO'}="0+0";
$ENV{'Titi'}="Not toto!";
system("sh toto.sh");

(Msys에서 실행되는 동안) 다음 출력을 반환합니다.

TOTO=0+0
Titi=
TITI=Not toto!

Windows에서 이것이 가능한지 아는 사람이 있습니까 (예 : 환경 변수를 설정 Titi하지 않고 설정하는 방법 TITI)?

감사

장 프랑수아 T.

할 수없는 것처럼 보였습니다. Windows는 대문자 변수 만 사용합니다.

내가 한 방법은 변수를 대문자로 대체하여 스크립트를 일시적으로 변환하고 사용 후 이전 상태로 다시 전환하는 것입니다.

제 경우에는 쉘 스크립트에서 내 보낸 변수를 처리해야했습니다 Run_Session.sh. 대문자 바꾸기를 수행하기 위해 Perl 스크립트를 만들었으며 이것이 결과입니다.

###############################
## SUBROUTINE uc_variables   ##
#-----------------------------#
# This subroutine convert the environment variables exported 
# by the top level script to upper case, and can revert the operation.
#
# Input:
# -----
# $mode: "ON" (default) or "OFF"
#
# Output:
# ------
# N/A
#-----------------------#
#########################
sub uc_variables {
    my $mode=shift;
    chdir $Bin;
    if ($mode eq "OFF") {
        foreach my $bak (glob "{*,*/*}.sh.bak") {
            (my $orig = $bak)=~s/\.bak//;
            move($bak,$orig);
        }
    } else {
        #Check if back-up already exists
        uc_variables("OFF") if (-e "Run_Session.sh.bak");
        #List variables to update
        my %uc_var;
        open RUN_SESSION,"<Run_Session.sh" or die "Error while reading Run_Session.sh ($!)\n";
        map { /export\s+(\w*[a-z]\w*)/ and ($uc_var{$1}=uc($1))=~s/Directory/DIR/i } <RUN_SESSION>;
        close RUN_SESSION;
        #Replace variables
        foreach my $shell (glob "{*,*/*}.sh") {
            #Back-up
            copy($shell,"$shell.bak");
            #Read data
            open SHELL,"<$shell" or die "Error while reading $shell ($!)\n";
            my $SHELL = join("", <SHELL>);
            close SHELL;
            #Replace
            map { $SHELL=~s/$_/$uc_var{$_}/g } keys %uc_var;
            #Print
            open SHELL,">$shell" or die "Error while writing in $shell ($!)\n";
            print SHELL $SHELL;
            close SHELL;
        }
    }
} #end of uc_variables

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Perl에서 대소 문자 구분 Windows 환경 변수 설정

분류에서Dev

Linux : 대소 문자 구분을 무시하는 환경 변수 설정?

분류에서Dev

모든 사용자에 대한 영구 환경 변수 설정

분류에서Dev

TypeScript에서 대소 문자 구분 문자열 정렬 수행

분류에서Dev

Windows XP에서 영구 환경 변수 설정

분류에서Dev

Windows 7 바로 가기에서 환경 변수를 부분 문자열로 지정할 수 있습니까?

분류에서Dev

Windows 7 바로 가기에서 환경 변수를 부분 문자열로 지정할 수 있습니까?

분류에서Dev

대소 문자 구분 URL 수정

분류에서Dev

대소 문자 구분 URL 수정

분류에서Dev

설정을 변경하지 않고 대소 문자를 구분하지 않고 정렬하는 방법

분류에서Dev

@Perl에서 분할에서 문자열을 정수로 변환하는 방법

분류에서Dev

폴더에 대한 영구 환경 변수 설정

분류에서Dev

폴더에 대한 영구 환경 변수 설정

분류에서Dev

Windows에서 DJANGO_SETTINGS_MODULE을 환경 변수로 영구적으로 설정

분류에서Dev

환경 변수의 OS 독립적 목록 구분자에 대한 VSCode 변수

분류에서Dev

문자열에서 구문 분석하고 부동, 정수 (Raku)로 변환

분류에서Dev

Windows에서 Bash-on-Ubuntu-on-Windows로 생성 된 대소 문자 구분 경로에 어떻게 액세스 할 수 있습니까?

분류에서Dev

SSRS 보고서-대 / 소문자 구분 매개 변수

분류에서Dev

텍스트 파일 수정에서 대소 문자 구분 검색?

분류에서Dev

Azure Function에서 연결 문자열을 앱 설정 / 환경 변수로 설정

분류에서Dev

WPF ListView에서 소수 구분 기호 변경 (바인딩, 문자열 형식)

분류에서Dev

파일 이름의 특정 구성 요소 이름을 소문자에서 대문자로 변경

분류에서Dev

Mac-대소 문자를 구분하는 파일 시스템에서 대소 문자를 구분하지 않는 파일 시스템으로 변환

분류에서Dev

R에서 쉼표로 구분 된 문자열을 정수로 변환

분류에서Dev

R에서 쉼표로 구분 된 문자열을 정수로 변환

분류에서Dev

Bash-bash 함수에서 환경 변수 구문 분석

분류에서Dev

대소 문자 변환-특정 csv 열에서 대문자를 소문자로 변환

분류에서Dev

문자열에서 정수와 소수 구분

분류에서Dev

Windows 8에서 작동하지 않는 환경 변수 설정

Related 관련 기사

  1. 1

    Perl에서 대소 문자 구분 Windows 환경 변수 설정

  2. 2

    Linux : 대소 문자 구분을 무시하는 환경 변수 설정?

  3. 3

    모든 사용자에 대한 영구 환경 변수 설정

  4. 4

    TypeScript에서 대소 문자 구분 문자열 정렬 수행

  5. 5

    Windows XP에서 영구 환경 변수 설정

  6. 6

    Windows 7 바로 가기에서 환경 변수를 부분 문자열로 지정할 수 있습니까?

  7. 7

    Windows 7 바로 가기에서 환경 변수를 부분 문자열로 지정할 수 있습니까?

  8. 8

    대소 문자 구분 URL 수정

  9. 9

    대소 문자 구분 URL 수정

  10. 10

    설정을 변경하지 않고 대소 문자를 구분하지 않고 정렬하는 방법

  11. 11

    @Perl에서 분할에서 문자열을 정수로 변환하는 방법

  12. 12

    폴더에 대한 영구 환경 변수 설정

  13. 13

    폴더에 대한 영구 환경 변수 설정

  14. 14

    Windows에서 DJANGO_SETTINGS_MODULE을 환경 변수로 영구적으로 설정

  15. 15

    환경 변수의 OS 독립적 목록 구분자에 대한 VSCode 변수

  16. 16

    문자열에서 구문 분석하고 부동, 정수 (Raku)로 변환

  17. 17

    Windows에서 Bash-on-Ubuntu-on-Windows로 생성 된 대소 문자 구분 경로에 어떻게 액세스 할 수 있습니까?

  18. 18

    SSRS 보고서-대 / 소문자 구분 매개 변수

  19. 19

    텍스트 파일 수정에서 대소 문자 구분 검색?

  20. 20

    Azure Function에서 연결 문자열을 앱 설정 / 환경 변수로 설정

  21. 21

    WPF ListView에서 소수 구분 기호 변경 (바인딩, 문자열 형식)

  22. 22

    파일 이름의 특정 구성 요소 이름을 소문자에서 대문자로 변경

  23. 23

    Mac-대소 문자를 구분하는 파일 시스템에서 대소 문자를 구분하지 않는 파일 시스템으로 변환

  24. 24

    R에서 쉼표로 구분 된 문자열을 정수로 변환

  25. 25

    R에서 쉼표로 구분 된 문자열을 정수로 변환

  26. 26

    Bash-bash 함수에서 환경 변수 구문 분석

  27. 27

    대소 문자 변환-특정 csv 열에서 대문자를 소문자로 변환

  28. 28

    문자열에서 정수와 소수 구분

  29. 29

    Windows 8에서 작동하지 않는 환경 변수 설정

뜨겁다태그

보관