Possible Duplicate:
How do ${0##*/} and ${0%/*} work?
I have encountered this type of syntax somewhere on the web :
for i in *.avi
do
ffmpeg -i "$i" "${i%.avi}.mp4"
done
how does this "${i%.avi}.mp4" and how can I use it ?
Possible Duplicate:
How do ${0##*/} and ${0%/*} work?
I have encountered this type of syntax somewhere on the web :
for i in *.avi
do
ffmpeg -i "$i" "${i%.avi}.mp4"
done
how does this "${i%.avi}.mp4" and how can I use it ?
This is known as a parameter expansion. Everything to the right of .avi is removed, and .mp4 is concatenated onto the result.
If $i is "foo.avi", the result would be "foo.mp4". BashFAQ 73 has some good examples of other ways you can use parameter expansions for string manipulation.
It will remove the suffix .avi from $i (if present) and then concatenate the result with .mp4.
This is called parameter expansion.
The standard ones are described here: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_02
Your shell may or may not implement more of those, but if it does, using them will not guarantee portability.