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.

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。