Puur in een poging iets te leren wil ik graag een bash-script schrijven waarin ik zo min mogelijk aan extern aan te roepen applicaties over wil laten.
In de variabele "file" heb ik het volledig pad naar een bestand staan, bijvoorbeeld "/plugin/dir/naam.plugin".
Nu wil ik enkel "naam" weergeven. Dit kan ik bijvoorbeeld met basename doen, maar liefst roep ik die niet aan.
Op deze manier krijg ik naam.plugin:
En hiermee krijg ik /plugin/dir/naam:
Is het mogelijk deze 2 samen te voegen? Natuurlijk kan ik eerst de bovenste in een variabele steken en die vervolgens door de onderste halen, dan ben ik er ook... maar als het in 1 slag zou kunnen zou dat natuurlijk helemaal te gek zijn.
In de Advanced Bash-Scripting Guide kan ik bovenstaande wel vinden, maar niet of ze ook samen te gebruiken zijn.
Uiteraard heb ik wel wat pogingen gedaan, bijvoorbeeld ${file##*/%*.plug} maar nie werken nie.
In de variabele "file" heb ik het volledig pad naar een bestand staan, bijvoorbeeld "/plugin/dir/naam.plugin".
Nu wil ik enkel "naam" weergeven. Dit kan ik bijvoorbeeld met basename doen, maar liefst roep ik die niet aan.
Op deze manier krijg ik naam.plugin:
code:
1
| echo ${file##*/} |
En hiermee krijg ik /plugin/dir/naam:
code:
1
| echo ${file%*.plugin} |
Is het mogelijk deze 2 samen te voegen? Natuurlijk kan ik eerst de bovenste in een variabele steken en die vervolgens door de onderste halen, dan ben ik er ook... maar als het in 1 slag zou kunnen zou dat natuurlijk helemaal te gek zijn.
In de Advanced Bash-Scripting Guide kan ik bovenstaande wel vinden, maar niet of ze ook samen te gebruiken zijn.
Uiteraard heb ik wel wat pogingen gedaan, bijvoorbeeld ${file##*/%*.plug} maar nie werken nie.