1. 创建脚本文件
# 在当前路径的src文件夹中创建my_script.sh的文件
(tensorflow2.4)lls@eclab:~/Py_project/Uncertainty/ENViSEC-main$ touch ./src/my_script.sh
2. 编写脚本内容
# 在当前路径的src文件夹中创建my_script.sh的文件
(tensorflow2.4)lls@eclab:~/Py_project/Uncertainty/ENViSEC-main$ vim ./src/my_script.sh
将代码1或代码2的内容添加到脚本文件中
代码1
适用于程序执行的输入,可以循环执行命令
#!/bin/bash
# 读取不同的学习率
lrs=("0.001" "0.002")
# 循环执行命令
for lr in "${lrs[@]}";do
python ./src/run.py --model DNN --data data/normalized/EdgeIIoT_normalized.csv --epoch 1 --lr "$lr" --method EDL --ood False --ensemble True --ks False >> ./src/output.txt
done
# 解释说明
# python ./src/run.py --model DNN --data data/normalized/EdgeIIoT_normalized.csv --epoch 1 --lr "$lr" --method EDL --ood False --ensemble True --ks False >> ./src/output.txt
这段代码的作用是将输出保存到当前路径下的src文件夹下的output.txt中。txt文件可以用Typora打开,基本上不用调整格式。当保存到txt文件中时,xshell中将不再输出相应的输出
代码2
适用于程序执行的输入(多个输入参数同时不同时)
#!/bin/bash
#定义要运行的命令
commands=(
"python ./src/run.py --model DNN --data data/normalized/EdgeIIoT_normalized.csv --epoch 1 --lr 0.001 --method EDL --ood False --ensemble True --ks False"
"python ./src/run.py --model DNN --data data/normalized/EdgeIIoT_normalized.csv --epoch 1 --lr 0.005 --method EDL --ood False --ensemble True --ks False"
)
#循环运行命令
for cmd in "${commands[@]}"; do
echo "执行程序,参数:"$cmd"
eval "$cmd"
done
3. 执行bash 脚本
下面展示两种方式执行bash文件
3.1 方法1
(tensorflow2.4)lls@eclab:~/Py_project/Uncertainty/ENViSEC-main$ sh ./src/my_script.sh
或者
(tensorflow2.4)lls@eclab:~/Py_project/Uncertainty/ENViSEC-main$ bash ./src/my_script.sh
3.2 方法2: 为脚本文件设置可执行权限
第一步:执行bash脚本的第二种方法是设置可执行权限
(tensorflow2.4)lls@eclab:~/Py_project/Uncertainty/ENViSEC-main$ chmod +x ./src/my_script.sh
第二步:执行脚本
(tensorflow2.4)lls@eclab:~/Py_project/Uncertainty/ENViSEC-main$ ./src/my_script.sh