#!/bin/sh
export CLASSPATH=.
for i in "1" "2" "3" "4" "5"
do
echo "running simulation $i..."
cd /home/acharya/ns-allinone-2.35/ns-2.35/
./ns /home/acharya/Desktop/xx/wrls.tcl
mv conf-out-tdsr.tr /home/acharya/Desktop/xx/parser
mv monitorlog.txt /home/acharya/Desktop/xx/parser/r2/evil$2/scen$i
mv reputationlog.txt /home/acharya/Desktop/xx/parser/evil$2/scen$i
mv pathmanagerlog.txt /home/acharya/Desktop/xx/parser/r2/evil$2/scen$i
mv misbehavenodeslog.txt /home/acharya/Desktop/xx/parser/r2/evil$2/scen$i
cd /home/acharya/Desktop/xx/parser/
java DSRParser trace conf-out-tdsr.tr $1 $2 > r2/evil$2/scen$i/scen-r2-$i.txt
java DSRParser routestats r2/evil$2/scen$i/pathmanagerlog.txt $1 $2 >> r2/evil$2/scen$i/scen-r2-$i.txt
cd ..done
这是第二个脚本 - :
#!/bin/sh
export CLASSPATH=.
#./run1.sh
for i in "0" "10" "20" "30" "40"
do
echo "Simulating evil node no. $i ..."
cp /home/acharya/Desktop/xx/hdr_confidant.hevil$i /home/acharya/ns-allinone-2.35/ns-2.35/dsr/hdr_confidant.h
cd /home/acharya/ns-allinone-2.35/ns-2.35
rm dsr/*.o
make
cd /home/acharya/Desktop/xx/
./run.sh 50 $i
done
这是我想知道的两个shell脚本。
mv monitorlog.txt /home/acharya/Desktop/xx/parser/r2/evil$2/scen$i
关于使用的scen$i
。
cp /home/acharya/Desktop/xx/hdr_confidant.hevil$i
因为文件名只有hdr_confidant.h,但evil$i
与它一起使用。
答案 0 :(得分:1)
第一个脚本运行五次,变量i分配给“1 2 3 4 5”列表中的每个值。对于每个循环迭代,移动一组文件。 scen$1
将是scen1,scen2,scen3 ......随着我的变化。执行两个java程序,输出文件使用$i
值,以便将每组结果写入不同的目录。
第二个脚本类似。循环变量将分配给10,20,30等。
$ 1是任何脚本的第一个参数。 $ 2是第二个参数。
要创建一个不存在的目录,请将其插入循环顶部的循环中 - :
[ -d /home/acharya/Desktop/xx/parser/r2/evil$2 ] || mkdir /home/acharya/Desktop/xx/parser/r2/evil$2
答案 1 :(得分:0)
$ i将被替换为i的值1/2/3/4/5或10/20/30/40/50。 例如,当i的值为1且第二个参数为2时,
mv monitorlog.txt / home / acharya / Desktop / xx / parser / r2 / evil $ 2 / scen $ i 变 mv monitorlog.txt / home / acharya / Desktop / xx / parser / r2 / evil2 / scen1
和$ 2是脚本的第二个参数。