POSIX shで許可されていますか"${blah}"
、またはbash派生シェルが必要ですか?
答え1
"${blah}"
移植可能なシェル構文です"$blah"
。これは、既存の Bourne シェルだけでなく、すべての POSIX 準拠シェルにも適用されます。 POSIXには、変数を拡張するための追加機能も必要です。
${VAR#PREFIX}
${VAR##PREFIX}
、およびを使用して${VAR%SUFFIX}
文字列操作を実行します${VAR%%SUFFIX}
。- 未設定の変数を処理するには、および条件文を使用し、および設定されていないか空の
${VAR-DEFAULT}
バリアントを使用します。${VAR=DEFAULT}
${VAR+FALLBACK}
${VAR?MESSAGE}
:-
:=
:+
:?
- 可変長
${#VAR}
。
すべての場合に二重引用符を使用しない限り(または複数の単語を許可しない他のコンテキスト)結果は、$…
スペース分割(より正確には文字分割)とワイルドカード拡張(ワイルドカード拡張)を経ます。$IFS
仕様を読むと、POSIXに何が存在するかを確認できます。最新バージョンのPOSIXオープングループ基本仕様(オプションのコンポーネントなし)。以前のバージョンは次のサブセットです。シングルUnix v2。
今日、POSIXシェルのないUnixシリーズシステムは非常にまれです。/bin/sh
一部のシステム、特にSolarisではPOSIX Bourneシェルではありませんが、POSIXシェルを使用できます(/usr/xpg4/bin/sh
Solarisでは/usr/xpg4/bin
PATHでこれを進める必要があります)。/usr/bin
Bourneシェルとの互換性が必要な場合は、多少異なる機能セットを持つ多くのバージョンのshがあるので、興味のあるシステムのマニュアルページを確認してください。Sven Mascheckは、多くの情報を含むページを管理します。。