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