1、cut
cut 命令可以从一个文本文件或者文本流中提取文本列。
选项与参数: -d :后面接分隔字符。与 -f 一起使用; -f :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思; -c :以字符 (characters) 的单位取出固定字符区间;
egg:
参考:https://www.cnblogs.com/liuyansheng/p/6180332.html
2、identify
identify命令主要用于获取一个或多个图像文件的格式和特性。
identify loading_01.bmp
loading_01.bmp BMP 1920x1200 1920x1200+0+0 8-bit DirectClass 9.216MB 0.020u 0:00.020
3、shell中#*,##*,#*,##*,%*,%%*的含义及用法
参考:shell中#*,##*,#*,##*,%*,%%*的含义及用法_Locutus的博客-CSDN博客
4、-o:或
lt:小于
5、shell脚本中$#、$*、$@、$?、$0-n等含义一次性搞明白!!!
∗与@的区别:
当命令行为test.sh 1 2 3
"$*"表示"1 2 3"
"$@"表示"1" "2" "3"
二者没有加上双引号时是一样的都为"1 2 3",只有加上双引号后才表现出差异:
"$*"将命令行所有的参数看成一个整体,而"$@"则区分各个参数。
egg:
源码:
结果:
参考:shell脚本中$#、$*、$@、$?、$0-n等含义一次性搞明白!!!_shell $#_Doctor舒畅的博客-CSDN博客
6、convert命令:
参考:Linux命令之convert命令_柒️星的博客-CSDN博客
目标代码:
PARAMS=($*)
LENGTH=${#PARAMS[*]}
PAGESIZE=${PARAMS[0]}
FILENAME=${PARAMS[$LENGTH-1]}
NIMG=${PARAMS[1]}
if [ $# -lt "3" -o $# -lt "$NIMG" ]; then
#exit
fi
for ((idx=0; idx<$NIMG; idx++));
do
IMG_ORI[$idx]=${PARAMS[$idx+2]}
IMG_EXT[$idx]=${IMG_ORI[$idx]%%.*}.tmp
IMG_FN[$idx]=${IMG_ORI[$idx]%%.*}.img
IMG_RSL[$idx]=$(identify "${IMG_ORI[$idx]}" | cut -f 3 -d' ')
IMG_BITS[$idx]=$(file "${IMG_ORI[$idx]}" | cut -f 11 -d' ')
FMTSIZE=`./bmpbpp ${IMG_ORI[$idx]}`
if [ "$FMTSIZE" -eq "32" ] ; then
echo "convert 32 bit image"
convert -depth 8 ${IMG_ORI[$idx]} rgb:${IMG_EXT[$idx]}
./rgbto888 <${IMG_EXT[$idx]}> ${IMG_FN[$idx]}
fi
done
echo ${IMG_RSL[*]}
echo ${IMG_BITS[*]}
MK_SPLASH="./mksplash $PAGESIZE $NIMG ${IMG_FN[*]} ${IMG_RSL[*]} $FILENAME"
echo $MK_SPLASH
$MK_SPLASH