linux – 使用这个bash文件名提取技术?

前端之家收集整理的这篇文章主要介绍了linux – 使用这个bash文件名提取技术?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一部分bash脚本正在获得一个文件名,而不是扩展名,但是我正在想知道这里真正发生了什么.什么是“%%”?有人可以详细说明bash在幕后做什么吗?这种技术如何在一般的基础上使用?
#!/bin/bash

for src in *.tif
    do
    txt=${src%%.*}
    tesseract ${src} ${txt}
    done

解决方法

删除文件扩展名(这里:.tif),示例:
$for A in test.py test.sh test.xml test.xsl; do echo "$A: ${A%%.*}"; done
test.py: test
test.sh: test
test.xml: test
test.xsl: test

从bash手册:

${parameter%%word}
          The word is expanded to produce a pattern just as in pathname expansion.  If the
          pattern matches a trailing portion of the expanded value of parameter,then  the
          result  of  the  expansion  is the expanded value of parameter with the shortest
          matching pattern (the ``%'' case) or the longest matching  pattern  (the  ``%%''
          case) deleted.  If parameter is @ or *,the pattern removal operation is applied
          to each positional parameter in turn,and the expansion is the  resultant  list.
          If  parameter  is an array variable subscripted with @ or *,the pattern removal
          operation is applied to each member of the array in turn,and the  expansion  is
          the resultant list.

猜你在找的Linux相关文章