Ksh script: Run bash-como substituto de caracteres: ${@/.txt/}
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
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