文字列から最初のn文字を削除しようとしていますが、次のエラーが発生します。
line 5: ${ echo $data | sed -r 's/.{ $index0 }//' }: bad substitution
Bashスクリプトでこのコードを使用する場合:
data=${ echo $data | sed -r 's/.{$index}//' }
修正がありますか?
ベストアンサー1
素晴らしい、
- コマンドの置換はであり
$( ... )
、そうではありません${ ... }
。中かっこではなく一般括弧です。 $index
一重引用符があるのでいいえシェルに拡張されました。これを行うには、二重引用符を入れる必要があります。$data
エコーに二重引用符を追加すると、data
スペースやグローバル文字が含まれている場合に違いが発生します。- Bashでは、部分文字列拡張を使用して
data=${data:$index}
文字列の前にある文字を削除できます。