1# This program is free software: you can redistribute it and/or modify 2# it under the terms of the GNU General Public License as published by 3# the Free Software Foundation, either version 3 of the License, or 4# (at your option) any later version. 5# 6# This program is distributed in the hope that it will be useful, 7# but WITHOUT ANY WARRANTY; without even the implied warranty of 8# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 9# GNU General Public License for more details. 10# 11# You should have received a copy of the GNU General Public License 12# along with this program. If not, see <http://www.gnu.org/licenses/>. 13# 14# force single-byte versions of these functions 15 16export LANG=C 17 18# remove shortest trailing match 19x=file.c 20recho ${x%.c}.o 21 22# remove longest trailing match 23x=posix/src/std 24recho ${x%%/*} 25 26# remove shortest leading pattern 27x=$HOME/src/cmd 28recho ${x#$HOME} 29 30# remove longest leading pattern 31x=/one/two/three 32recho ${x##*/} 33 34# and no match thrown in for good measure 35recho ${x#nomatch} 36 37foo=abcdefg 38 39# fail 40echo ${foo%ab} 41echo ${foo%def} 42 43echo ${foo#fg} 44echo ${foo#def} 45 46# succeed 47echo ${foo#ab} 48echo ${foo#def} 49 50echo ${foo%fg} 51echo ${foo%def} 52