重複の可能性:
${0##*/}と${0%/*}はどのように機能しますか?
Webのどこかでこの種の構文を見たことがあります。
for i in *.avi
do
ffmpeg -i "$i" "${i%.avi}.mp4"
done
この機能はどのように機能し、どのように"${i%.avi}.mp4"
使用しますか?
答え1
これをパラメータ拡張と呼びます。右側の内容はすべて.avi
削除され、.mp4
結果にリンクされます。
「foo.avi」の場合、$i
結果は「foo.mp4」です。バッシュFAQ 73文字列操作にパラメータ拡張を使用できる他の方法のいくつかの良い例があります。
答え2
.avi
サフィックスがある場合は削除し、$i
結果を.mp4
。
これをパラメータ拡張と呼びます。
標準は次のように説明されます。 http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_02
あなたのシェルはそれらの多くを実装することも実装しないかもしれませんが、もしそうなら、それを使っても移植性は保証されません。