スペースを含む複数の文字列を連結しますか?

スペースを含む複数の文字列を連結しますか?

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が次のように動作する場合)。吹く;参照が見つかりません)ファイル名しかし、とてもうまくいきます。

おすすめ記事