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 ...

おすすめ記事