Pergunta

Eu tenho um script ksh que tem de permanecer assim (alguns dos programas Corre-se insistir em ser ksh). Eu quero tomar o argumento de entrada "test.txt" e remover os últimos 4 caracteres ou localizar e substituir o ".txt" com nada.

Na festa eu faria

NewVar=${@/.txt/}

Esta não funciona no ksh embora. Como posso me livrar da .txt no ksh? Tentei

bash -c 'NewVar=${@/.txt/}'

mas não funcionou o $ @ variável nesta shell recém-criado.

Obrigado,

Dan

Foi útil?

Solução

Por que não usar basename ?

Outras dicas

ksh não vai deixar você fazer isso com $ @, mas se você atribuir a uma variável temporária, você pode fazê-lo sem desova outro proc com

tmp=$@
newvar=${tmp%.txt}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top