Bash 스크립트에서 변수 값을 공백으로 바꾸기 - 올바른 방법

Bash 스크립트에서 변수 값을 공백으로 바꾸기 - 올바른 방법

디버깅 기호를 사용하거나 사용하지 않고 프로그램을 컴파일하는 컴파일 스크립트가 있습니다.

readbash 프롬프트( )를 통해 사용자에게 다음과 같은 디버그 버전을 원하는지 물어보고 싶습니다 .

compiler_options_for_debug_version=''
debug_flag=''
if [[ "$debug_switch" == "Y" ]]; then
    compiler_options_for_debug_version=("CFLAGS=\"-g -O0\"")
    debug_flag='--with-debug'
fi

그러나 이것은 CFLAGS="-g -O0"오류를 발생시키기 때문에 약간의 두통을 안겨줍니다.

vagrant@node02:~$ compiler_options_for_debug_version=("CFLAGS=\"-g -O0\""); $compiler_options_for_debug_version;
CFLAGS="-g: command not found

나는 시도했다:

compiler_options_for_debug_version=("CFLAGS=\"-g -O0\"")
compiler_options_for_debug_version="CFLAGS=\"-g -O0\""
compiler_options_for_debug_version='CFLAGS="-g -O0"'

CFLAGS="-g -O0"나는 여기서 다음과 같은 것을 기대합니다 :

$compiler_options_for_debug_version ./configure --with-luajit --with-http_postgres_module ...

따라서 다음으로 확장되어야 합니다.

CFLAGS="-g -O0" ./configure --with-luajit --with-http_postgres_module ...

최후의 수단으로 if [ ... ]명령문을 추가하고 하드코딩 할 수 있지만 CFLAGS="-g -O0"올바른 방법으로 수행하는 것도 가능해야 합니다.

답변1

변수에 값을 넣어주시면 됩니다

compiler_options_for_debug_version=""
if something; then
    compiler_options_for_debug_version="-g -O0"
fi

그런 다음 변수를 사용할 때 변수를 인용해야 합니다. 이는 똑같이 중요합니다.

CFLAGS="$compiler_options_for_debug_version" ./configure ...

관련 정보