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

Était-ce utile?

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
scroll top