Tem a certeza de que não está a utilizar o %% , que elimina a correspondência mais longa do final da cadeia e lhe oferece my , enquanto % elimina a correspondência mais curta e fornece (por exemplo) o que quer
fname=my-importer-1.0.ear
echo ${fname%%-*}
my
enquanto
echo ${fname%-*}
my-importer