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