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

¿Fue útil?

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