## * / utiliser dans les scripts de shell UNIX

Est-ce que quelqu’un pourrait expliquer comment ## * / fonctionne dans les scripts UNIX Shell. Je l’ai vu utiliser dans Korn Shell. Il est spécifiquement utilisé pour supprimer l’extension du fichier.

Par exemple, func_write_app_log “o Suppression du fichier d’état $ {CIE_STATUS_FILE ## * /}”

Ici, supposons que le fichier est CIE_STATUS_FILE.DAT, alors ## * / affichera CIE_STATUS_FILE

Cela fonctionne également dans Bash et est décrit ici :

$ {ssortingng ## sous-chaîne}

Supprime la plus longue correspondance de $ subssortingng de la partie avant de $ ssortingng.

Le * est un joker qui signifie correspondre à n’importe quoi. Votre exemple supprime le chemin du fichier, pas l’extension.

 $ bazfile = '/ foo / bar / baz.txt'
 $ echo $ {bazfile ## * /}
 baz.txt

Pour supprimer l’extension que vous souhaitez utiliser % :

$ {chaîne% sous-chaîne}

Supprime la correspondance la plus courte de $ subssortingng de l’arrière de $ ssortingng.

 $ echo $ {bazfile%. *}
 / foo / bar / baz