ksh: Ejecutar fiesta de carácter como sustituto: ${@/.txt/}
Pregunta
Tengo un script ksh que tiene que seguir siéndolo (algunos de los programas que ejecuta insisten en ser ksh). Quiero tomar el argumento de entrada "test.txt" y eliminar los últimos 4 caracteres o buscar y reemplazar el ".txt" sin nada.
En bash que haría
NewVar=${@/.txt/}
Esto no funciona en ksh sin embargo. ¿Cómo puedo deshacerme de la .txt en ksh? Probé
bash -c 'NewVar=${@/.txt/}'
pero no funcionaba la variable $ @ en esta cáscara de nueva creación.
Gracias,
Dan
Solución
¿Por qué no usar nombre base ?
Otros consejos
ksh no dejará que lo haces con $ @, pero si lo ha asignado a una variable temporal, puede hacerlo sin desove otro proc con
tmp=$@
newvar=${tmp%.txt}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow