读书人

红色标记的一部分是啥意思呀

发布时间: 2013-02-19 11:11:40 作者: rapoo

红色标记的部分是啥意思呀?
#!/bin/bash
#文件名 rename.sh
#用途:重命名.jpg和.png文件
count=1;
for img in *.jpg *.png
do
new=image-$count.${img##*.}
mv "$img" "$new" 2> /dev/null
if [ $? -eq 0 ];
then
echo "Renaming $img to $new"
let count++
fi
done

请问红色标记的地方是啥意思哦?
[解决办法]
将"$img"重命名为"$new",把出错消息重定向到/dev/null,即,即使出错也不会有任何提示。
数字的含义:0表示stdin,0表示stdout, 2表示stderror

[解决办法]
${img##*.}是截取img变量从头部直到第一个.的字符串吧。
[解决办法]

引用:
${img##*.}是截取img变量从头部直到第一个.的字符串吧。

是去掉最大前缀.

img=image.jpg
${img##*.}就是jpg

${parameter##word}
Remove Largest Prefix Pattern. The word will be expanded to produce a pattern. The parameter expansion then will result in parameter, with the largest portion of the prefix matched by the pattern deleted.

读书人网 >UNIXLINUX

热点推荐