ksh não pode cp da localização com espaço nela?

1

Estou tentando fazer o seguinte em ksh , mas continuo recebendo a mensagem cannot stat para o comando cp :

JMX_ROOT=/bfs-build/build-info/mep_mainline-Linux.latest/core/mainline/automation

SMOKE_JMX_LOCATION=$JMX_ROOT/"Smoke Set"/*.*

cp $SMOKE_JMX_LOCATION /var/tmp/tempor

Alguma ideia? Eu tentei colocar citações em torno das várias variáveis, mas sem sorte.

    
por Rory 27.10.2011 / 14:28

3 respostas

1

cp "$SMOKE_JMX_LOCATION" /var/tmp/tempor
#--^-------------------^

EDIT: Eu realmente não notei os curingas. Sim, citá-las impedirá a expansão. Existe alguma razão pela qual você precisa colocá-los em uma variável? Certamente isso funcionaria:

cp $JMX_ROOT/"Smoke Set"/*.* /var/tmp/tempor
    
por 27.10.2011 / 14:51
0
SMOKE_JMX_LOCATION="$(echo $JMX_ROOT/"Smoke Set"/*.*)"
cp "$SMOKE_JMX_LOCATION" /var/tmp/tempor
    
por 27.10.2011 / 15:58
0

Você pode usar um separador de campo alternativo para contornar esse espaço em branco no nome do diretório.

JMX_ROOT=/bfs-build/build-info/mep_mainline-Linux.latest/core/mainline/automation

OLD_IFS="$IFS"
IFS=$'\n'

SMOKE_JMX_LOCATION="${JMX_ROOT}/Smoke Set"

cp ${SMOKE_JMX_LOCATION}/*.* /var/tmp/tempor

IFS=$OLD_IFS
    
por 27.10.2011 / 16:01