Como combinar string/dir em um caminho usando scripts de bash
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".
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)