Shell Script 编程笔记

考虑下面两个场景:

场景一:我们在训练深度网络模型过程中保存了10个不同epoch模型。我们希望通过测试集验证每个模型的性能。每次对模型进行测试集验证需要30分钟,对于原始的操作方式,每次验证需要在终端手动输入一条指令,等待30分钟后程序运行结束,然后复制窗口输出的模型性能信息手动保存。再输入指令测试下一个模型,再进行等待......

场景二:现在有一个任务需要进行视频内的行人检测行人重识别,如果我们行人检测使用Caffe开源框架,而行人重识别使用Pytorch框架,如何把这个任务整合成一个程序?

使用shell脚本可以很好的解决以上场景中存在的问题。

一、Shell脚本介绍

Shell 是一个用 C 语言编写的程序,Shell 脚本(shell script)是一种为 shell 程序编写的脚本语言。业界所说的 shell 通常都是指 shell 脚本。Linux 的 Shell 种类众多,如 Bourne Shell(/usr/bin/sh或/bin/sh),Bourne Again Shell(/bin/bash) 和 C Shell(/usr/bin/csh)等。

本笔记记录的是Bourne Again Shell(/bin/bash。Bash 在日常工作中被广泛使用。同时,Bash 也是大多数Linux 系统默认的 Shell。在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为 #!/bin/bash

理解 [Shell Script] 跟 [终端窗口交互式命令行] 的联系:

Shell Script终端交互式命令行的联系,等价于python脚本编程交互式编程的关系。即终端窗口命令行每次只能输入一行命令执行,而shell脚本是把所有命令写成一个文件,每行相当于终端窗口命令行的一行命令,然后一起执行

 

二、基础语法

注意: 编辑Shell脚本时要用unix格式编辑器!可以使用MobaTextEditor 不要用windows下的sublime! 因为 windows 下的换行符是 \r\n,而 linux 下的换行符是 \n,所以会报一些莫名其妙的错误!

2.1. Hello World

    #! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序 【#!/bin/bash】

############## run.sh ##############
#!/bin/bash
name='hello world' 		
echo  ${name}

##########################  执行脚本  ##########################

# 方式一:作为可执行程序
chmod +x run.sh    # 使脚本具有执行权限
./run.sh           # 执行脚本
'''
注意:
    一定要写成 ./run.sh,而不是 run.sh,运行其它二进制的程序也一样。
直接写 run.sh,linux 系统会去 PATH 里寻找有没有叫 run.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里。
你的当前目录通常不在 PATH 里,所以写成 run.sh 是会找不到命令的,要用 ./run.sh 告诉系统说,就在当前目录找。
'''

# 方式二:作为解释器参数
sh run.sh
bash run.sh
'''
使用这种方式运行,则与第一行的#!/bin/bash无关了。
系统会自动调用默认的sh或bas
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值