Exportando LD_LIBRARY_PATH que contém espaços e caracteres especiais

0

Tentando implantar um aplicativo Qt no Ubuntu

Direções do site do Qt mostram como permitir as dependências da biblioteca para ser carregado, alterando a variável LD_LIBRARY_PATH:

#!/bin/sh
appname='basename $0 | sed s,\.sh$,,'

dirname='dirname $0'
tmp="${dirname#?}"

if [ "${dirname%$tmp}" != "/" ]; then
dirname=$PWD/$dirname
fi

LD_LIBRARY_PATH=$dirname/Framework:$dirname/Libraries:{LD_LIBRARY_PATH}

export $LD_LIBRARY_PATH

$dirname/$appname "$@"

Infelizmente, o diretório onde o aplicativo deve ser instalado - que aparecerá no PWD - possui espaços e caracteres especiais

/usr/share/My Company, Inc/ProductName/

Olhando para recursos como este: Como ter um caminho contendo espaços no PATH? Eu tentei mudar

dirname="$PWD"/$dirname

ou até mesmo escreveu tudo (apenas como um teste, uma vez que o caminho da biblioteca tem que trabalhar em qualquer diretório, não apenas um específico) como

dirname="/usr/share/My\ Company\,\ Inc/ProductName/"

e

LD_LIBRARY_PATH="$dirname"

ainda diz

./MyProgram.sh: 13: export: Company,: bad variable name

A alteração de export $LD_LIBRARY_PATH para export "$LD_LIBRARY_PATH" leva a um novo erro:

 13: export: /usr/share/My Company, Inc/ProductName/./Framework:/usr/share/My Company, Inc/ProductName/./Libraries:: bad variable name

Olhando para esta pergunta: link

Esta é uma tarefa impossível?

Como posso fazer a exportação entender espaços e vírgulas?

    
por Thalia 29.09.2014 / 23:38

1 resposta

1

Você deve exportar a variável, não seu valor.

Ou seja,

export LD_LIBRARY_PATH

não

export "$LD_LIBRARY_PATH"

Editar (exemplo):

$ LD_LIBRARY_PATH='/usr/share/My Company, Inc/ProductName'
$ export LD_LIBRARY_PATH
$ env | grep LD_
LD_LIBRARY_PATH=/usr/share/My Company, Inc/ProductName
$ 
    
por Gunnar Hjalmarsson 30.09.2014 / 00:32