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是一个功能强大 ...
随机推荐
- 可遇不可求的Question之error: Failed dependencies: MySQLconflicts 错误篇
error: Failed dependencies: MySQLconflicts 错误提示: error: Failed dependencies: ...
- 关于SQL\SQL Server的三值逻辑
在SQL刚入门的时候,我们筛选为某列值为NULL的行,一般会采用如下的方式: SELECT * FROM Table AS T WHERE T.Col=NULL 而实际上此种写法无法得到想要的结果.此 ...
- Linux和Windows下tomcat开机自启动设置
Linux下tomcat的开机自启动设置 1.修改系统文件rc.local:vi /etc/rc.d/rc.local rc.local是给用户自定义启动时需要执行的文件,和windows里面的“启动 ...
- Javascript高级编程学习笔记(13)—— 引用类型(2)Array类型
除了Object类型之外ECMA中最常用的引用类型可能就是Array类型了 并且ECMA中的数组类型和其他大多数编程语言的数组类型存在着很大的区别 今天就介绍一下JS中的Array的特别之处 区别 1 ...
- Java 实现将其他类型数据转换成 JSON 字符串工具类
这是网上一个大神实现的,具体出处已找不到,在这做个记录,方便以后使用. package com.wb.test; import java.beans.IntrospectionException; i ...
- Spark基础脚本入门实践2:基础开发
1.最基本的Map用法 val data = Array(1, 2, 3, 4, 5)val distData = sc.parallelize(data)val result = distData. ...
- [视频]K8飞刀 S2-020 exploit getshell 动画教程
[视频]K8飞刀 S2-020 exploit getshell 动画教程 链接:https://pan.baidu.com/s/1G5x7Dcu6pzHz6ZfSCDDmKA 提取码:05kw
- 手把手教您定制化Centos6.x安装界面
1.获取安装界面代码 挂载image/install.img:mount image/install.img /mnt/5 -o loop 复制挂载后的代码至self_intall ...
- 全网最详细的实用的搜索工具Listary和Everything对比的区别【堪称比Everything要好】(图文详解)
不多说,直接上干货! 引言 无论是工作还是科研,我们都希望工作既快又好,然而大多数时候却迷失在繁杂的重复劳动中,久久无法摆脱繁杂的事情. 你是不是曾有这样一种想法:如果我有哆啦A梦的口袋,只要拿出 ...
- ACM学习大纲
1 推荐题库 •http://ace.delos.com/usaco/ 美国的OI 题库,如果是刚入门的新手,可以尝试先把它刷通,能够学到几乎全部的基础算法极其优化,全部的题解及标程还有题目翻译可以b ...