あなたは間違いなくbashのについての学習をされていないとして、あなたの目標を達成するための多くの多くの方法があります。私は@ Matの答えはbar=${foo##*.}
を使っていると思っていますが、彼はそれがどのように、なぜそれがうまくいくのか説明していません。 bash tutorial on tldpをチェックアウトすることを強くお勧めします。このような質問がある場合は、私のGotoソースです。文字列の操作には、その部分にdiscusses many of the different ways to go about this sort of thingというセクションがあります。
あなたはfooは常に長い5つの文字になるだろうことを知っている場合たとえば、あなたは、単にそれから5番目の文字を取ることができますが:
bar=${foo:4}
、FOOの第五の位置をバー作るている(覚えています、私たちはゼロから数え始めます。
あなたは常にFOOの最後の位置になるだろう知っている場合は、あなただけ後方に数えることができます。-1
とコロンの間にスペースがある
bar=${foo: -1}
お知らせを、あなたがそれを必要とする(またはかっこ)を使用して、負の符号をエスケープします。
@Matの答えを説明するために、私は上記のリンクを見なければなりませんでした。どうやら式で(あなたがそれらを呼び出すために好きなハッシュマーク、octothorpe、)二重のシャープ記号は:
${string##substring}
$string
の正面から$substring
の最長一致を削除することを意味します。だから、*.
の最長一致を探しています。これは、ドットの前にのすべてと等しいです。かなりクールですね?
ありがとうございました。とてもかっこいい。私が読むことができる余分なドキュメントに特別なおかげです。 – Rell3oT