linux100day(day5)--编程原理和shell脚本
通过前面的学习,我们对于linux文件系统有了一定的了解,我们接下来会初步接触编程原理和尝试编写shell脚本来实现功能。
day05--编程原理和shell脚本初步认识
编程原理
在早期编程中,因为要使不同厂家的硬件设备之间进行指令沟通,常常使用汇编语言来编写程序。而现在编程基于高级语言和超高级语言,翻译成计算机可读的二进制指令,增强程序可读性,使程序员更好的实现编程功能
编程语言分为解释型和编译型,
解释型的特点是:逐行翻译,逐行执行。 如shell python
编译型的特点是:一次编译,全部执行。 如c语言 C++
shell脚本语言介绍
shell脚本包括:1、命令2、变量3、逻辑关系
shell中定义脚本编辑器#!/bin/bash,这一句代码是必写的
使用bash命令来执行脚本
bash -n #查看shell脚本的逻辑错误
bash -x #逐行显示执行的脚本程序
或者先为脚本授以执行权限chmod +x 脚本名,再使用./脚本名就可以执行脚本
变量
环境变量 echo $PATH 显示环境变量
局部变量 decclare 命令 定义变量类型
本地变量 local 在函数中使用
传参
$? -- 上一条命令的执行状态 0 正确 1-255 错误
$1 $2 ... ${10} -- 命令后面传入脚本的数据,以空格为分隔符
$# -- 统计传参数量 ${$#} ?
$* -- 表示所有的传参,所有的传参以字符串形式进行输出
$@ -- 表示所有传参,将所有的传参以列表的形式进行输出
【工作中要对所有的传参进行操作的时候,就要考虑$*和$@】
test文件测试、条件判断
在脚本中,我们需要进行 语句分支; 说白了,就要做判断
判断就是使用test命令来实现;
使用格式:
1、test [option] file
2、[ 条件语句 ]
常见的test选项:
比较选项:
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
判断选项:
-f 判断是否为普通文件
-d 判断是否为目录文件
-L 判断是否为连接文件
-r -w -x 判断文件是否具有 读 写 执行 权限
关联选项:
-o 或
-a 与
! 非
字符串判断:
= 判断两边的字符串是否相同
!= 不等于
-z 判断字符串是否存在
-n 和 -z 相反,存在为假,不存在为真
逻辑运算
与 && : 两边的命令,都为真,结果才是真
或 || : 两边的命令,一边为真,就是真,同时为假,才是假
非 !=
这个逻辑运算符,前后对接的都是单独存在的命令;
[ $? -eq 0 ] && exit 0 || exit 1
交互输入
read 命令
read命令同时可以定义多个变量值,而输入的内容默认以空格为分隔符,如果默认过多,最后所有的值都会被赋予给最后一个变量,如果默认值过少,多余的变量则为空值
read常用参数
read -p 请输入一个目录
read -t 定义超时时间
linux100day(day5)--编程原理和shell脚本的更多相关文章
- centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课
centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件.目录属性 shell数组简单用法 $( ) 和$ ...
- HBase学习笔记之HBase原理和Shell使用
HBase学习指南之HBase原理和Shell使用 参考资料: 1.https://www.cnblogs.com/nexiyi/p/hbase_shell.html,hbase shell
- shell编程基础(二): shell脚本语法之分支语句和循环语句
一.分支语句 1.条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与 ...
- 【Shell脚本编程系列】Shell脚本开发的习惯和规范
1.开头指定脚本解释器 #!/bin/sh或#!/bin/bash 2.开头加版本版权信息 #Date #Author #Mail #Function #Version 提示:可配置vim编辑文件时自 ...
- shell编程基础(四): shell脚本语法之函数及调试
一.Shell脚本中的函数 和C语言类似,Shell中也有函数的概念,但是函数定义中没有返回值也没有参数列表.例如: #! /bin/sh fun(){ echo "Function fun ...
- 第三部分shell编程3(shell脚本2)
7. if 判断一些特殊用法 if [ -z $a ] 这个表示当变量a的值为空时会怎么样if grep -q '123' 1.txt; then 表示如果1.txt中含有'123'的行时会怎么样if ...
- 第三部分shell编程3(shell脚本编写1)
做监控和备份最多 1. shell脚本是什么它是一种脚本语言,并非编程语言可以使用一些逻辑判断.循环等语法可以自定义子函数是系统命令的集合shell脚本可以实现自动化运维,大大增加我们的工作效率 第一 ...
- 【原】Shell脚本-判断文件有无进而复制
2016年7月5日某同学在群上求助要编一个判断文件或目录在某路径下有无进而有的就复制粘贴到另一路径下,无的则将代码中断(不往下执行命令)的脚本.逐一完善.模板如下(生产环境可用到路径环境变量) --- ...
- Linux-Shell编程之创建shell脚本并执行
1.创建文件 touch myFirst.sh 2.编辑文件 vi myFirst.sh 点击键盘的字母 I 进行编辑,输入一下内容 #!/bin/bash # My First script ls ...
随机推荐
- python-列表元祖字典集合
列表 list = ["a", "b", "c", "d"]元祖 tup = (1, 2, 3, 4, 5 ) 1.元组 ...
- Codeforces Round #608 (Div. 2) E - Common Number (二分 思维 树结构)
- 170821-关于SpringMVC的知识点
1.SpringMVC 概述以及优势 SpringMVC和Spring的关系: 软件开发的三层架构: web层[表示层.表现层]---->Service层---->Dao[DataBas ...
- js 通过浏览器直接打开应用程序(IOS,Android)
实现效果 如下图所示,在手机浏览器中访问京东的手机版网站(m.jd.com),顶部会有一个广告图,点击这个广告图,如果手机上已经安装了京东App,则直接打开,如果没有安装,则开始下载. 实现方式 1. ...
- English-taxonomy
域.界.门.纲.目.科.属.种 Domain, Kingdom, Phylum, Class, Order, Family, Genus, Species
- 【BASIS系列】SAP BASIS模块-后台配置的传输
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[BASIS系列]SAP BASIS模块-后台配 ...
- 【linux】 mail/mutt 发送邮件
mail: 比较常用,缺点是发送附件要同时安装其他软件: mutt:功能强大,注意发送html需要升级到1.5+版本: 用mail发送邮件: echo "邮件正文" | mai ...
- 编程语言 - 脚本编程 - JavaScript/Jquery/Ajax/XML/JSON/ActionScript3
事件处理onmouseover <!DOCTYPE html> <html> <head> <meta charset="utf-8"&g ...
- 排序算法四:快速排序(Quicksort)
快速排序(Quicksort),因其排序之快而得名,虽然Ta的平均时间复杂度也是O(nlgn),但是从后续仿真结果看,TA要比归并排序和堆排序都要快. 快速排序也用到了分治思想. (一)算法实现 pr ...
- Linux安装redis服务器和部署
Linux安装redis和部署 第一步:下载安装包 wget http://download.redis.io/releases/redis-5.0.5.tar.gz 访问https://redis. ...