连接多个字符串,其中包含空格?

连接多个字符串,其中包含空格?

我正在尝试在 ksh shell 中执行以下操作:

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 的工作方式像重击;找不到参考),而后者不能是文件名,但它非常有效路径

相关内容