le script ksh: Exécuter substitut de caractères bash comme: ${@/.txt/}
Question
J'ai un script ksh qui doit rester (quelques-uns des programmes qu'il exécute insistent sur le fait d'être ksh). Je veux prendre l'argument d'entrée « test.txt » et enlever les 4 derniers caractères ou rechercher et remplacer le « txt » avec rien.
bash je ferais
NewVar=${@/.txt/}
Cela ne fonctionne pas dans ksh cependant. Comment puis-je me débarrasser du txt en ksh? J'ai essayé
bash -c 'NewVar=${@/.txt/}'
mais il n'a pas la variable $ @ pour dans ce shell nouvellement créé.
Merci,
Dan
La solution
Pourquoi ne pas utiliser basename ?
Autres conseils
ksh ne vous laissera pas le faire avec $ @ pour, mais si vous attribuez à une variable temporaire, vous pouvez le faire sans fraie un autre proc avec
tmp=$@
newvar=${tmp%.txt}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow