linux shell 使用数组拷贝文件
使用什么命令,可以把文件夹里面的文件名字读取出来,然后放到一个数组里,通过调用数组拷贝文件到挂载文件夹里(能够提供shell代码最好啦),坐等高手,谢谢拉...
使用什么命令,可以把文件夹里面的文件名字读取出来,然后放到一个数组里,通过调用数组拷贝文件到挂载文件夹里(能够提供shell代码最好啦),坐等高手,谢谢拉
展开
展开全部
shell没有数组,不过下面的实施方式,不知道对你有帮组不?
#!/bin/sh
i=0
for filename in `ls`
do
echo "myfile$i=$filename" >> ./mydata
i=`expr $i + 1`
done
eval `cat ./mydata`
#以下演示
b=0
cat ./mydata | while read line
do
myarray="myfile$b"
eval echo "cp \$$myarray to some dir"
b=`expr $b + 1`
done
rm -f ./mydata
另外要判断是否执行成功,可调用$?,然后判断执行就行。
#!/bin/sh
i=0
for filename in `ls`
do
echo "myfile$i=$filename" >> ./mydata
i=`expr $i + 1`
done
eval `cat ./mydata`
#以下演示
b=0
cat ./mydata | while read line
do
myarray="myfile$b"
eval echo "cp \$$myarray to some dir"
b=`expr $b + 1`
done
rm -f ./mydata
另外要判断是否执行成功,可调用$?,然后判断执行就行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#!/bin/bash
sdir=/home/flycat
pdir=/tmp/test
array=(`ls -l $sdir | grep ^- | awk '{print $8}'`)
for i in ${array[*]};do
cp $sdir/$i $pdir
done
sdir=/home/flycat
pdir=/tmp/test
array=(`ls -l $sdir | grep ^- | awk '{print $8}'`)
for i in ${array[*]};do
cp $sdir/$i $pdir
done
追问
我是拷贝一个文件夹里面很多文件,需要一个if。。。then判断文件拷贝成功与否,需要添加到您这个程序的什么地方?谢谢
追答
#!/bin/bash
sdir=/home/flycat
pdir=/tmp/test
array=(`ls -l $sdir | grep ^- | awk '{print $8}'`)
for i in ${array[*]};do
cp $sdir/$i $pdir
done
echo "复制完成"
sleep 1
echo "开始检验"
for i in ${array[*]};do
diff $sdir/$i $pdir/$i >/dev/null 2>&1
if [ $? -ne 0 ];then
echo "$sdir/$i 未cp成功" >files.log
fi
done
echo "检验完成,请查看files.log"
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询