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
查看某一命令是否是来自于外部命令还是内置于bash中:type [-tpa] name 也可用来查找命令,如:type -p touch 有/bin/touch:type -p vbird无 ...
- 【Linux】Linux学习(四)Shell编程
Linux学习(四)Shell编程 Shell概述 Shell脚本入门 变量 系统预定义变量 自定义变量 特殊变量 运算符 条件判断 流程控制(重点) if判断 case语句 for循环 while循 ...
- 我的Linux学习记录(蓝桥)————用户及文件权限管理
我的Linux学习记录(蓝桥)三 Linux 是一个可以实现多用户登录的操作系统,比如"李雷"和"韩梅梅"都可以同时登录同一台主机,他们共享一些主机的资源,但他 ...
- linux查找硬链接文件夹,linux学习(四)复制(cp)移动(mv)删除(rm)查找(find)文件、文件夹操作、软硬链接的区别...
@ 复制文件 cp命令用于复制文件到制定的目录 语法格式为: cp [选项] 源文件或目录 目标文件或目录 命令选项 含义 cp -d 当复制符号链接时,把目标文件或目录页建立为符号链接,并指向与源文 ...
- Linux学习笔记8——bash基本概念
一个操作系统的组成中,shell是与用户最接近的部分 shell:外壳,也是一种程序 GUI:Gnome,KDE,Xface CLI:sh,csh,ksh,bash,tcsh,zsh Linux中大多 ...
- leveldb 学习记录(四)Log文件
前文记录 leveldb 学习记录(一) skiplist leveldb 学习记录(二) Slice leveldb 学习记录(三) MemTable 与 Immutable Memtable le ...
- MySQL学习记录 (四) ----- SQL数据管理语句(DML)
相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...
- Linux学习记录(二)QEMU安装与Linux内核环境搭建
Linux学习记录(二) 记录本人学习的过程和遇到的问题 QEMU安装与Linux内核环境搭建 Linux学习记录(二) 一.QEMU安装 1.什么是QEMU 2.QEMU安装 二.Linux内核环境 ...
- linux学习记录-coredump segment fault
linux学习记录: 1.coredump:段错误; 总线错误; 程式记忆体区段错误; 链接:http://www.cnblogs.com/doctorqbw/archive/2011/12/21/2 ...
最新文章
- pandas 读取写入保存文件
- python 字符串可以直接连接吗_如何连接字符串。。。在?(Python)
- mint mvc文件上传功能——使用篇
- 王道操作系统考研笔记——2.1.8 调度算法的评价指标
- Fiddler访问百度
- 动量投资组合构建_如何创建吸引合适类型客户的投资组合(内部排名前5位的投资组合构建商)
- python 12306登录_Python Selenium自动登录12306官网
- ICCMO微信公众账号开发系列(1)接入微信公众账号
- 纹理压缩简介 DXT PVR ETC
- 如何设置UISwitch的大小
- C# winform表格datagridview行高自动设置问题
- (十)打包和项目部署
- 云计算进化史及服务模式
- Tableau 桑基图
- 字符串中Emoji表情处理
- 图论(四)最短路算法Dantjig的实现
- js搞定网页的简繁转换
- windows设置代理上网
- 设计模式之java-学习笔记
- 2月英语总结——遇见AJ
热门文章
- (转)VS2005 SP1发布,解决只能创建WebSite,无法创建Web Application项目的问题
- 0.1 hint crack
- H5学习系列之Communication API
- 性别从后台获取得值的那点事儿
- 配置GoldenGate源端Manager参数
- 菜鸟从零开始的第一个应用上线记(三)
- PHP MVC设想,MVC框架构思(一)
- C# 从DataSet导出到Excel
- 《LeetCode力扣练习》第70题 爬楼梯 Java
- OpenCvSharp中CV_8UC1,CV_8UC2等参数的解释