erro: Macro% tem nome ilegal (% define)

3

Eu tenho um script de suporte à criação para criar meus pacotes. Agora eu quero definir automaticamente a versão em meus arquivos de especificação. Eu uso a macro %{auto_version} para isso. No meu script, quero invocar rpmbuild -D 'auto_version 1.1' packet.spec , por exemplo.

#!/bin/bash
version=$(version.sh)
#snip
define="'auto_version ${version}'"

build_spec () {
    spec=$1
    define=$2
    #snip
    build_output=$(rpmbuild -D "$define" $spec)
    # snip
}

build_spec $build_spec "$define"

No entanto, isso gera o erro error: Macro % has illegal name (%define)

Eu tentei escapar, citando e criando define um array, tratado com ${define[@]} .

    
por sahisb 15.05.2017 / 18:00

1 resposta

0

Como @tripleee right points, o motivo de error: Macro % has illegal name (%define) são aspas extras em -D|--define diretivas como:

-D "\"_gpg_name $gpgname\""

a versão correta é:

-D "_gpg_name $gpgname"
    
por 06.09.2018 / 06:17