Bash 将脚本的输出用于其他命令
大家好 我编写了一个脚本,用于将文件复制到多个文件,并为副本生成随机名称。 这部分工作正常,但是,当我尝试在创建的副本上运行多组命令时,它不会获取所有副本,而是仅获取一个副本,并在这个副本上运行命令 以下是脚本:Bash 将脚本的输出用于其他命令,bash,shell,output-redirect,Bash,Shell,Output Redirect,大家好 我编写了一个脚本,用于将文件复制到多个文件,并为副本生成随机名称。 这部分工作正常,但是,当我尝试在创建的副本上运行多组命令时,它不会获取所有副本,而是仅获取一个副本,并在这个副本上运行命令 以下是脚本: #!/bin/bash ## Script for copying a file to multiple files (mass copy) and generating random name to each file ## ## Main script # VARS COUNTE
#!/bin/bash
## Script for copying a file to multiple files (mass copy) and generating random name to each file
##
## Main script
# VARS
COUNTER=0
echo "File to copy ? (full name)"
read filename
echo "Please select extension to new files (doc/pdf/exe/etc...)"
read ext
echo "How many copies to make ? (number)"
read numcopies
while [ $COUNTER -lt $numcopies ]; do
for i in $( cat /dev/urandom | tr -cd 'a-f0-9' | head -c 64 ); do
cp $filename $i.$ext
ls $i.$ext > /tmp/newfiles.txt
done
let COUNTER=COUNTER+1
done
#
## Diff test for files generated on this script only
# VARS
DIFF=$(diff $filename $i.$ext)
if [ "$DIFF" = "" ]
then
echo "Diff all files succesfully"
fi
#
## md5sum test for files generated on this script only
# VARS
TMP=/tmp/md5sum_test.txt
MD5=$(md5sum $filename $i.$ext > $TMP)
grep $filename $TMP | awk '{print $1}' | while read line;
do
GREP=$(grep -v $line $TMP)
if [ "$GREP" == "" ]
then
echo "md5sum's are matching"
else
echo "operation failed"
fi
done
exit 0
这是我得到的结果:
root@myserver:/my/directory # ./copier.sh
File to copy ? (full name)
oren.doc
Please select extension to new files (doc/pdf/exe/etc...)
doc
How many copies to make ? (number)
20
Diff all files succesfully
md5sum's are matching
root@myserver:/my/directory # cat /tmp/newfiles.txt
bbfb46e1a0fabeab9343839dd2b8e13a254847f0890f809959decc669abd06fd.doc
root@myserver:/my/directory # cat /tmp/md5sum_test.txt
cc8bba3d80207cd0b9832eddf7781743 oren.doc
cc8bba3d80207cd0b9832eddf7781743 bbfb46e1a0fabeab9343839dd2b8e13a254847f0890f809959decc669abd06fd.doc
提前感谢您的反馈…此:
ls $i.$ext > /tmp/newfiles.txt
应附加,而不是覆盖:
ls $i.$ext >> /tmp/newfiles.txt
你不可能减少复制可疑行为所需的代码量?(这往往会导致你在问别人之前就发现问题。)嗨,我在这和网上花了很多好的时间,当我用脚本运行命令时,它可以正常工作,但我忽略了重定向输出以便在脚本上重新使用它的要点。嗨,谢谢你的提要。这解决了脚本上的文件列表问题,但diff和md5sum仍然只使用输出中的最后一个文件。。。