【发布时间】:2017-08-26 14:14:47
【问题描述】:
我正在运行此代码,用于对所需文件夹中的文件进行排序。如果文件名有 13 个字符,它应该运行第一个语句,否则运行第二个。
for i in *.png; do if [ "$($i | wc -c)" -eq 13 ]; then
echo cp $i $HOME/Desktop/final/pos_${i:0:1}/${i:0:3}.jpg
else
echo cp $i $HOME/Desktop/final/pos_${i:0:1}/${i:0:4}.jpg
fi;
done
问题是,[ "$($i | wc -c)" -eq 13 ] 始终为 0,但很明显,文件名有一些长度。在 if 语句中评估 wc -c 的正确方法是什么?
【问题讨论】:
-
在
cp中使用引号。也许文件名可以包含空格。 :)
标签: string bash if-statement string-length wc