我尝试在目录中查找文件并将它们复制到其他地方,这是我的脚本:
#!/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"
改用。当您的变量包含应被视为单个字符串的带有空格(或其他“奇怪”符号)的字符串时,这可以防止许多问题。