Sim, você não pode aninhar as substituições, pois ambas exigem um nome de variável.
Você pode fazer isso em uma chamada para basename
:
base="$( basename "$pathname" .o )-1234.o"
O segundo argumento para basename
é um sufixo que será removido da string dada.
Observe também que usar letras maiúsculas PATH
como uma variável em um shell script é uma idéia muito ruim , já que essa variável é usada pelo shell para encontrar utilitários externos.
Use nomes de variáveis em minúsculas em scripts. Isso ajuda a evitar confrontos com variáveis de shell e variáveis de ambiente que o shell está usando para outras coisas.