Linux 学习记录 四(Bash 和 Shell scirpt).
一、什么是 Shell?
狭义的shell指的是指令列方面的软件,包括基本的Linux操作窗口Bash等,广义的shell则包括 图形接口的软件,因为图形接口其实也可以操作各种驱动程序来呼叫核心进行工作。
系统合法的 shell 均写在 /etc/shells 文件中。
二、Bash Shell 的基本操作技巧

- && 前一个指令必须没有错误信息
- || 如果正确就不执行第二条。错误接着执行第二条
- 变量和变量内容以一个等号=连接,a=123
- 等号两边不能直接接空格符
- 由英文字母和数字组成,但开头不能是数字
- 变量内容中如果有特殊字符,可以用""或''将变量内容结合起来
- " "中 $变量,可以保留原本的特性
- ' ' 中$变量,当成一般字符来处理
- 可以用跳脱字符 \ 来使不认识的特殊字符来当成一般字符
- ``或者()的意义:``或者()里面的指令先被执行,作为外部的输入信息
- 将 - 变成 + 可以进行[取消]动作:declare +x sum :
- 单独列出变量的类型:declare -p sum
- 升级成环境变量:export PATH
- 取消变量 :unset a
- 数组定义:var[1]="123" var[2]="456" var[3]="789"
- 引用数组 echo ${var[1]}
- 变量 $:出现的数字就是你的PID号码
- 变量 ?:上一个错误指令的错误代码,如果没有错误就为0
变量内容的替换:
- test -e file 文件名是否存在
- test -f file 文件名是否存在 且为file
- test -d directory 文件名是否存在且为目录
- test -r -w -x filename 是否具有可读可写可执行的权限
- test n1 -eq n2 两数值相等
- test n1 -ne n2 两数值不等
- -gt n1大于n2
- -lt n1小于n2
- -ge 大于等于
- -le 小于等于

脚本的变量交互还可以用 ${0}、${1}、${2}、${3} 来进行,${0} 表示执行的脚本名、${1} 表示输入的第一个变量、${2}表示输入的第二个变量、${3} 表示输入的第三个变量

if 条件判断



流程控制(循环):
while 循环


for 循环


for 循环


函数:

注意点:和传统语言不同,函数必须定义在脚本最前面,以便程序执行的时候可以认识函数。函数 形参 也是用${1}、${2}、${3} 来传参,也就是说函数内的${1}/${2}/${3} 辨认的调函数时传进去的实参。而不是 执行脚本传递时的参数
Linux 学习记录 四(Bash 和 Shell scirpt).的更多相关文章
- Linux 学习记录 四(Bash 和 Shell scirpt)
一.什么是 Shell? 狭义的shell指的是指令列方面的软件,包括基本的Linux操作窗口Bash等,广义的shell则包括 图形接口的软件,因为图形接口其实也可以操作各种驱动程序来呼叫核心进行工 ...
- leveldb 学习记录(四)Log文件
前文记录 leveldb 学习记录(一) skiplistleveldb 学习记录(二) Sliceleveldb 学习记录(三) MemTable 与 Immutable Memtablelevel ...
- Linux 学习第四天
Linux学习第四天 一.常用命令 1.tar (压缩.解压) A.添加压缩包 tar czvf 压缩包名称.tar.gz 源文件 B.添加压缩包 tar cjvf 压缩包名称.tar.bz2 ...
- Linux学习笔记(四) vi编辑器
一.vi 编辑器 vi 编辑器 (Visual Interface) 是所有 Unix 及 Linux 系统下标准的编辑器,相当于 Windows 系统中的记事本 它有三种模式,分别是: Comman ...
- JavaScript学习记录四
title: JavaScript学习记录四 toc: true date: 2018-09-16 20:31:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...
- 4.VUE前端框架学习记录四:Vue组件化编码2
VUE前端框架学习记录四:Vue组件化编码2文字信息没办法描述清楚,主要看编码Demo里面,有附带完整的代码下载地址,有需要的同学到脑图里面自取.脑图地址http://naotu.baidu.com/ ...
- 鸟哥的linux私房菜学习记录之bash
当你对计算机输入一个指令时,bash会将指令传送给核心kernel,核心再去调用相关的程序,启动硬件. 如果直接让用户操作操作系统,可能会造成系统的崩溃,所以操作系统通过应用程序来让用户操作系统即壳程 ...
- leveldb 学习记录(四) skiplist补与变长数字
在leveldb 学习记录(一) skiplist 已经将skiplist的插入 查找等操作流程用图示说明 这里在介绍 下skiplist的代码 里面有几个模块 template<typenam ...
- Linux学习笔记(15)shell基础之Bash基本功能
1 shell概述 shell是一个命令解释器,为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序.用户可以用shell启动.挂起.停止甚至是编写一些程序. shell是一个功能强大 ...
随机推荐
- docer compose学习
docker-compose 编排lnmp容器 https://gitee.com/lichenxin/docker-compose-mnpr version: '2' services: mysql ...
- jsp和html的区别
html是超文本标记语言,只要有浏览器,就可以显示出来了. jsp是java server page就是在java服务器端的页面,需要通过jdk的编译才可以显示在客户端的浏览器上. 不仅如此,jsp还 ...
- modbus转乐鑫物联网平台上传工具
乐鑫平台推荐个人用户使用 界面比较简洁
- XE下显示托盘图标(TrayIcon)
https://www.cnblogs.com/studypanp/p/4930619.html XE下显示托盘图标(TrayIcon) 1.拖一个TrayIcon控件 2.拖一个Applicat ...
- [SRC初探]手持新手卡挖SRC逻辑漏洞心得分享
文章来源i春秋 本文适合新手参阅,大牛笑笑就好了,嘿嘿末尾有彩蛋!!!!!!!!!!!!!!!!!本人参加了本次"i春秋部落守卫者联盟"活动,由于经验不足,首次挖SRC,排名不是那 ...
- jQuery判断复选框checkbox的选中状态
通过jQuery设置复选框为选中状态 复选框 <input type="checkbox"/> 错误代码: $("input").attr(&quo ...
- kubernetes集群搭建(4):node节点安装
下列所有操作需要在所有node节点上操作,并注意红色部分的修改 1.node节点不需要安装etcd来存储相关信息 yum -y install flannel kubernetes 2.修改flann ...
- Data - Spark简介
Spark简介 Spark是基于内存计算的大数据并行计算框架,可用于构建大型的.低延迟的数据分析应用程序. HomePage:http://spark.apache.org/ GitHub:https ...
- Liferay7 BPM门户开发之5: Activiti和Spring集成
参考文档: https://github.com/jbarrez/spring-boot-with-activiti-examplehttps://github.com/sxyx2008/spring ...
- JavaSE-关键字final
final修饰数据: final修饰基本数据类型,使数值恒定不变,修饰对象引用,final使引用恒定不变 final修饰的成员变量必须要被初识化 final可以修饰方法中的参数列表,被修饰的参数无法在 ...