1.2.7. 値に特殊文字を使用する
Red Hat build of Keycloak は、Quarkus と MicroProfile に依存して設定値を処理します。評価式がサポートされていることに注意してください。たとえば、${some_key} は some_key の値と評価されます。
式の評価を無効にするには、\ 文字をエスケープ文字として使用します。特に、$ で式を定義する場合や $ が繰り返し現れる場合、\ によって $ の使用をエスケープする必要があります。たとえば、設定値 my$$password が必要な場合は、代わりに my\$\$password を使用します。ほとんどの Unix シェルを使用する場合、またはプロパティーファイルに現れる場合は、\ 文字を追加でエスケープするか、引用符で囲む必要があることに注意してください。たとえば、bash で一重引用符を使用すると、単一のバックスラッシュ --db-password='my\$\$password' が保持されます。また、bash で二重引用符を使用する場合は、バックスラッシュがもう 1 つ --db-password="my\\$\\$password" が必要です。同様に、プロパティーファイルでも、バックスラッシュ文字をエスケープする必要があります (kc.db-password=my\\$\\$password)。
Windows 固有の考慮事項
設定値で Windows ファイルパスを指定する場合は、バックスラッシュもエスケープする必要があります。たとえば、パス C:\path\to\file を指定する場合は、C:\\path\\to\\file と記述する必要があります。または、C:/path/to/file のように、エスケープする必要のないスラッシュを使用することもできます。
PowerShell を使用し、値にコンマなどの特殊文字が含まれている場合は、二重引用符を一重引用符で囲みます。
.\kc.bat start --log-level='"INFO,org.hibernate:debug"'
PowerShell では引用符を異なる方法で処理します。引用符で囲まれた文字列を kc.bat スクリプトに渡す前に解釈し、外側の引用符文字を削除します。したがって、値の構造を保持するには、引用符の追加レイヤーが必要です。そうでない場合、コンマは区切り文字として解釈されます。Windows CMD では、二重引用符を直接使用できます。