ksh не может cp из местоположения с пространством в нем?

Я пытаюсь сделать следующее в ksh но не cannot stat получить сообщение cannot stat для команды 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 

Есть идеи? Я попытался поставить кавычки вокруг различных переменных, но не повезло.

  • OS / X: невозможно выполнить сценарии оболочки - выдает новое окно, которое немедленно выйдет
  • помочь построить grep-выход
  • Как использовать sed для замены строки, используя номер строки на удаленной машине, используя ssh?
  • Сценарий Bash для мониторинга безопасности сервера?
  • Как сохранить консольный ввод в mplayer при чтении из stdin?
  • Необходимо улучшить функцию urlencode
  • Cron Job Не работает
  • Unix-эпоха в миллисекундах
  • 3 Solutions collect form web for “ksh не может cp из местоположения с пространством в нем?”

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

    EDIT: Я действительно не замечал подстановочные знаки. Да, цитирование их предотвратит расширение. Есть ли причина, по которой вам нужно поместить их в переменную? Конечно, это сработало бы:

     cp $JMX_ROOT/"Smoke Set"/*.* /var/tmp/tempor 
     SMOKE_JMX_LOCATION="$(echo $JMX_ROOT/"Smoke Set"/*.*)" cp "$SMOKE_JMX_LOCATION" /var/tmp/tempor 

    Вы можете использовать альтернативный разделитель полей, чтобы обойти это пустое пространство в имени каталога.

     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 
    Linux и Unix - лучшая ОС в мире.