0

以下は、ローカルサーバーの私のInputLocationにあるファイルです

-rw-r----- 1 root root 0 Sep 25 15:03 one.xml
-rw-r----- 1 root root 0 Sep 25 15:03 two.xml
-rw-r----- 1 root root 0 Sep 25 15:03 data.csv
-rw-r----- 1 root root 0 Sep 25 15:03 free.png
-rw-r----- 1 root root 0 Sep 25 15:04 loaded.jpeg

以下のコマンドを使用してファイルを転送できます

scp ${InputPath}/*.{jpeg,xml} ${user}@${HostName}:$OutputPath

しかし、私は以下のようにextnsを変数に入れようとしています

FilesExtnsToBeTransfered=jpeg,xml
scp ${InputLocation}/*.{$FilesExtnsToBeTransfered} ${user}@${HostName}:$OutputPath

しかし、ファイルは利用可能ですが、以下の例外が発生しています

InputLocation/*.{jpeg,xml}: No such file or directory

何か助けてください。

4

1 に答える 1

0

言います:

FilesExtnsToBeTransfered=jpeg,xml
echo {$FilesExtnsToBeTransfered}

結果は{jpeg,xml}(ブレース展開は実行されません) になります。

次の 2 つのオプションがあります。

  1. (醜い、お勧めしません): を使用しevalます。

    eval scp ${InputLocation}/*.{$FilesExtnsToBeTransfered} ${user}@${HostName}:$OutputPath

  2. 目的のファイル拡張子を配列に入れます。

EXTNS=( jpeg xml )
for i in "${EXTNS[@]}"; do
  scp ${InputLocation}/*.$i ${user}@${HostName}:$OutputPath
done
于 2013-09-30T06:59:28.697 に答える