ディレクトリ内のファイルを見つけて別の場所にコピーしようとしています。これが私のスクリプトです。
#!/bin/bash
# fileSearch
array=(a b c d)
for var in array
do
find ~/ -name $var* -exec cp {} ./test/ \;
done
私は何を間違っていますか?彼はファイルを見つけられません...おそらく引用符付きのものになると思います。
誰でも私を助けることができますか?
ありがとう
これを試して:
#!/bin/bash
# fileSearch
array=(a b c d)
for var in array
do
echo $var
done
出力:
array
つまり、単一の単語「配列」を含む単語リストをループしているだけです。正しいバージョンでは、配列を展開し、$-symbol (変数を参照することを意味します) を追加する必要があります。
#!/bin/bash
# fileSearch
array=(a b c d)
for var in ${array[@]}
do
find ~/ -name "$var*" -exec cp {} ./test/ \;
done
また、変数を引用符で囲むのも良い習慣です。つまり、 のような変数を使用するときはいつでも代わり$varに使用してください。"$var"これにより、単一の文字列として扱われるべきスペース (またはその他の「奇妙な」記号) を含む文字列が変数に含まれる場合の多くの問題が回避されます。