내 컴퓨터(Windows 8.1)에 Cygwin 환경을 설정했습니다.
pol@pol-lap1 ~/다운로드/소프트웨어/데이터베이스/firebird/Firebird-2.5.4.26856-0
$ `set | grep unknown`
BASH_VERSINFO=([0]="4" [1]="3" [2]="33" [3]="1" [4]="release" [5]="x86_64-unknown-cygwin")
echo "bash: $FUNCNAME(): \`${!OPTIND}': unknown argument" 1>&2;
194,10xCelsius 194,unknown 198,offlinescanuncsectorct \
그러나 이렇게 하면 env | grep -i unknown
아무것도 반환되지 않습니다.
pol@pol-lap1 ~/Downloads/software/database/firebird/Firebird-2.5.4.26856-0
$ env | grep -i unknown
pol@pol-lap1 ~/Downloads/software/database/firebird/Firebird-2.5.4.26856-0
환경 변수의 값은 4입니다.
pol@pol-lap1 ~/Downloads/software/database/firebird
$ echo $BASH_VERSINFO
4
이제 내가 원하는 것은 시스템이 내가 원하는 프로그램을 컴파일하도록 "속이기" 위해 $BASH_VERSINFO[5]의 값을 x86_64-redhat-linux-gnu로 변경하는 것입니다.
시도해 보았지만 export BASH_VERSINFO[5]=x86_64-redhat-linux-info
아무 것도 바뀌지 않았습니다.
어쩌면 나는 Linux의 명령과 명령 set
의 차이점을 완전히 이해하지 못할 수도 있습니다. env
set을 사용하여 얻은 값이 env를 사용하여 얻은 값과 다른 이유는 무엇입니까?
누구든지 이러한 문제에 대해 밝혀주고 변수를 변경하기 위해 무엇을 할 수 있는지 알려주시면 감사하겠습니다.
답변1
BASH_VERSINFO[5]=x86_64-redhat-linux-info
산출:
bash: BASH_VERSINFO: 읽기 전용 변수
그런데. 바라보다:gdb를 사용하여 읽기 전용 변수를 설정 해제하는 해킹 방법