공백이 포함된 여러 문자열을 연결하시겠습니까?

공백이 포함된 여러 문자열을 연결하시겠습니까?

ksh 쉘에서 다음을 수행하려고 합니다.

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

SMOKE_JMX_LOCATION="$JMX_ROOT/\"Smoke Set\"/*.txt $JMX_ROOT/\"Smoke Set\"/*.TXT 
$JMX_ROOT/\"Smoke Set\"/SmokeSet.jmx"

cp $SMOKE_JMX_LOCATION /var/tmp

즉, .txt, .TXT 및 .jmx 파일을 한 디렉터리에서 다른 디렉터리로 복사할 때 "Smoke Set"의 공백으로 인해 오류가 발생합니다.

어떤 도움이라도 대단히 감사하겠습니다.

답변1

일반적으로 문자열에 여러 경로를 넣을 수 없습니다.아무것* 이는 대부분의 파일 시스템에서 유효한 문자열이자 유효한 경로입니다. 배열을 사용할 수 있습니다.

JMX_ROOT=/bfs-build/build-info/mep_mainline-Linux.latest/core/mainline/automation
set -A SMOKE_JMX_LOCATIONS "$JMX_ROOT/Smoke Set/"*.txt "$JMX_ROOT/"Smoke Set"/"*.TXT "$JMX_ROOT/Smoke Set/SmokeSet.jmx"
cp "${SMOKE_JMX_LOCATIONS[@]}" /var/tmp

* 누군가 항의하기 \0전에 /전자는 변수의 일부가 될 수 없습니다(적어도 ksh가 다음과 같이 작동하는 경우).불다;참조를 찾을 수 없음)파일 이름, 하지만 아주 잘 작동해요.

관련 정보