Pergunta

Estou tentando criar um makefile que use informações do caminho para criar um nome de RPM relevante. Suponha que eu tenha dois caminhos possíveis diferentes:

PATH1 = /usr/local/home/jsmith/code/main
PATH2 = /usr/local/home/jsmith/code/dev/ver2

Se "Main" for detectado no caminho, quero detectar e anexar "main" ao nome do RPM. Se "Dev" for detectado no caminho, quero detectar e anexar "ver2" ao nome do RPM.

Sou novo no script de conchas e realmente não tenho uma boa ideia por onde começar. Eu poderia fazer isso facilmente em algo como Python, mas é para um makefile, então preciso fazê -lo na concha.

"Principal" no caminho seria constante, mas se "principal" não existir, o nome do caminho do desenvolvimento precisaria ser extraído. Aqui estão alguns exemplos da CROW:

/usr/local/home/jsmith/code/main/usr/local/home/jsmith/code/dev/ver_usa/usr/local/home/jsmith/code/dev/ver_mexico/usr/local/home/jsmith/code /dev/ver3

Se existisse "Dev", seria necessário extrair "ver_usa", "ver_mexico", "ver3", etc. O nome do diria que precisa ser extraído seguiria exatamente "dev".

Foi útil?

Solução

algo assim, assumindo "main" e "ver2" não são constantes

some_rpm_name="some rpm"
PATH=/usr/local/home/jsmith/code/main
#PATH2=/usr/local/home/jsmith/code/dev/ver2
s=${PATH##*/}
case "$s" in
  *main ) RPM_NAME="${some_rpm_name}_main";;
  *ver2) RPM_NAME="${some_rpm_name}_ver2";;
esac
echo $RPM_NAME

Outras dicas

Usar grep e verifique se há valor de retorno?

Você também posso Execute o python em makefile.

Parece que o último elemento do caminho é sempre o que você deseja.

rpmname=$rpmname+${pathname##*/}

ou

rpmname=$rpmname+$(basename pathname)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top