2017-10-07 9 views
2

非常に初心者レベルの質問です。与えられた作業スクリプトのBashは二重引用符を使用してパラメータを抽出します

#!/bin/bash 
./configure $FLAGS --extra-cflags="-I$TOOLCHAIN_PREFIX/include $CFLAGS" 

それはパラメータに"-I$TOOLCHAIN_PREFIX/include $CFLAGS"一部を抽出することは可能ですか?

など。マッチングを探しながら、他の人の中で、私は `"」予期しないEOFで失敗すれば、以下の通りを試してみました:

#!/bin/bash 
EXTRACT="\"-I$TOOLCHAIN_PREFIX/include $CFLAGS\"" 
./configure $FLAGS --extra-cflags=$EXTRACT 
+0

構文引用符を混同しないでください - どのようにシェルを教えてくれました文字列を構文要素にパースする - データの一部であるリテラル引用符で*完全に別のもの*リテラル引用符は構文上の目的には一切使われません(データに余分な引用符を付けることはできませんあなたの構文に引用符がないのを代用してください) –

+1

( './configure $ FLAGS'は" wor "あなたがFLAGSに渡すことができる可能性のある引数のセットは、かなり厳しく制限されています。 'FLAGS = ' - foo =" bar baz "'' './configure --foo =" bar baz "'と同じ効果を与える方法はありません。 –

+1

(そして別のものとして、OS-やシェルで定義されたツールの意味を持つ変数には、すべての大文字の名前が使われていますが、名前に少なくとも1つの小文字がある変数はアプリケーション用に予約されています。 'TOOLCHAIN_PREFIX'があなた自身の建築物である場合、少なくとも1つの小文字が必要です; http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html、4番目を参照してください段落)。 –

答えて

関連する問題