一个案例学习bat和shell脚本的编写

简介: 一个案例学习bat和shell脚本的编写
背景

有时候需要编写windows上的批处理文件,来代替命令行手动执行程序,虽然语法很简单,但是也需要一点时间来查找,编写,测试。由于用得不多,过一段时间有需要再用起来又忘了,只好再学一遍。也包括在linux上写shell脚本。这里介绍一个案例,批量执行多个python文件,只需要执行一次这个脚本,便自动完成所有测试。

任务

在目录./operators下有a.py,b.py,c.py,d.py等多个python文件,现在需要写一个脚本,分别在windows和linux下执行如下语句,即所有的python文件都将被执行两次(pr是脚本*.py内需要用的参数)

python ./operators/a.py
python ./operators/a.py pr
python ./operators/b.py
python ./operators/b.py pr
...
所用到的语法

用到的语法包括变量定义,循环遍历,字符串连接,自增变量等。这里贴出这个任务的bat脚本和shell脚本,对应来理解。test.bat文件如下

@echo off 
set Path=./operators
set OpsList=a;^
b;c;d;e;f;^
g;h
setlocal enabledelayedexpansion
set /a cnt=1
set python=d:\python36\python.exe
for %%i in (%OpsList%) do (
    echo "测试第!cnt!个算子文件"
    %python% %Path%/%%i.py
    %python% %Path%/%%i.py pr
    set /a cnt+=1
)

同样功能的test.sh文件

Path=./operators/
OpsList=(a \
b c d e f \
g h)
cnt=1
for i in ${OpsList[*]};
do
    echo "测试第${cnt}个算子文件"
    python ${Path}${i}.py
    python ${Path}${i}.py pr
    let cnt++
done

有几个注意事项

  • 变量赋值 = 前后不能有空格
  • 引用变量,windows的格式为前后百分号%var%,shell的格式为$var
  • 长字符串连接,window的bat用^,shell用反斜杠\
  • windows的格式,自增变量起作用需要setlocal enabledelayedexpansion这句
  • 字符串和变量的连接没有 + ,写到一起就行
相关文章
|
4天前
|
监控 Unix Shell
shell脚本编程学习
shell脚本编程
22 12
|
7天前
|
Shell
shell脚本变量 $name ${name}啥区别
shell脚本变量 $name ${name}啥区别
|
10天前
|
人工智能 监控 Shell
常用的 55 个 Linux Shell 脚本(包括基础案例、文件操作、实用工具、图形化、sed、gawk)
这篇文章提供了55个常用的Linux Shell脚本实例,涵盖基础案例、文件操作、实用工具、图形化界面及sed、gawk的使用。
26 2
|
1月前
|
Shell
Shell脚本有哪些基本语法?
【9月更文挑战第4天】
43 17
|
1月前
|
存储 Unix Shell
shell脚本编程基础
【9月更文挑战第4天】
36 12
|
29天前
|
网络协议 关系型数据库 MySQL
Shell 脚本案例
Shell 脚本案例
36 8
|
1月前
|
Shell Linux 开发工具
linux shell 脚本调试技巧
【9月更文挑战第3天】在Linux中调试shell脚本可采用多种技巧:使用`-x`选项显示每行命令及变量扩展情况;通过`read`或`trap`设置断点;利用`echo`检查变量值,`set`显示所有变量;检查退出状态码 `$?` 进行错误处理;使用`bashdb`等调试工具实现更复杂调试功能。
|
2月前
|
Java Shell Linux
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
关于如何使用Shell脚本来解析Linux系统中的应用服务日志,提供了脚本实现的详细步骤和技巧,以及一些Shell编程的技能扩展。
31 0
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
|
2月前
|
监控 Shell Linux
在Linux中,如何使用shell脚本进行系统监控和报告?
在Linux中,如何使用shell脚本进行系统监控和报告?
|
2月前
|
运维 监控 Shell
自动化运维之宝:编写高效的Shell脚本
【8月更文挑战第31天】在运维的世界里,Shell脚本是一把瑞士军刀,它让日常任务变得简单而高效。本文将通过浅显易懂的语言和实际案例,带你领略Shell脚本的魅力,并教你如何打造属于自己的自动化工具箱。无论你是初学者还是资深运维,这篇文章都将为你打开一扇窗,让你看到不一样的风景。让我们一起探索Shell脚本的世界吧!