[Linux]-Shell编程与规范
1.脚本文件
Shell脚本一般以.sh为后缀名.但注意在Linux中.sh不是作为文件类型识别的依据,仅仅只是用来向看到的人标记这是一个Shell脚本而已.
Shell脚本一般有一个头声明 #!/bin/bash 告诉Linux应该用什么来执行脚本,如果没有,Linux默认将使用bash来执行脚本
2.脚本的执行方式
source [文件名]
. [文件名]
./ [文件名] (注意这种方式文件需要有执行权限)
bash/dash/sh [文件名]
3.管道符
管道符 | :将上一个命令的执行结果作为下一个命令的参数传入.这是一个非常有用的使用
一个使用率非常的高的语句 ps *** | grep 'xxxx' 就是一个管道符的最好例子. 这句话的本意是 执行ps **** ,并在返回结果再执行过滤 'xxxx'
4.重定向
Linux标准是由输入设备(键盘)获取输入,将结果输出到输出设备(屏幕).重定向就是这个输入输出的转向
4.1 标准重定向
输入重定向
< 输入重定向
例 wc < file 对file文件的内容进行单词计数.
输出重定向
>输出重定向(以覆盖方式) >>输出重定向(以追加方式)
例: ls > file 将ls的执行结果放入file文件中(ls的输出本来是屏幕,输出重定向到文件)
&> 混合输出
4.2 签入文档重定向
<<delimiter delimiter 将delimiter之间的内容作为输入传入给前面的命令
例:$wc -l << EOF
xxx
EOF
4.3 黑洞重定向
command > /dev/null
/dev/null是Linux定义的一个特殊的存在.所有向它写入的东西将全部消失,所有向它读取的东西将什么也读不到,所以称之为黑洞.
5.变量
5.1 自定义变量
5.1.1 变量的声明
shell中变量区分大小写,可以以字母或者下划线开头.规范是系统变量全大写,自定义变量纯小写,以下划线分割
注意:shell中定义变量temp=1,=前后不能有空格.
5.1.2 变量的作用范围(局部&全局)
export 声明: export是将声明的变量由局部变量升级为全局变量.默认情况下声明的变量只会在当前运行的shell环境有效,export后变量可以再进入新的shell环境后依然有效
5.2 预定义变量
由bash预先定义的一些特殊变量,可以直接使用但不能修改
$$ 当前脚本执行的进程ID
$0 当前脚本的文件名
$n(1-9) 执行脚本传入的第n个参数
$# 执行脚本传入的参数的格式
$* 执行脚本传入的所有参数 当被双引号包裹时,$*将所有参数作为一个整体输出 " a b c d"
$@ 执行脚本传入的所有参数 当被双引号包裹时,$@将所有参数分开作为个体输出 "a" "b" "c" "d"
$? 上个命令的退出状态或者函数执行的返回值
5.3 变量的数学运算
变量的数学计算不能直接使用. A+B在shell中的含义是A和B两个作为字符串拼接.
数学计算需要使用 expr 关键字
expr [变量] [运算符] [变量2] <=注意,运算符的前后必须有空格
例子: c=`expr $x + $y`
6.流程控制
6.1 if 语句
6.1.1 语法
if [[ 条件 ]];then...elif [[ 多个条件 ]];then...else...fi 6.1.2 条件符 数值比较 -eq 测试两个整数是否相等 -ne 测试两个整数是否不等 -gt 测试一个数是否大于另一个数 -lt 测试一个数是否小于另一个数 -ge 大于或等于 -le 小于或等于 字符串比较
[ -z STRING ] 如果STRING的长度为零则为真 ,即判断是否为空,空即是真;
[ -n STRING ] 如果STRING的长度非零则为真 ,即判断是否为非空,非空即是真;
[ STRING1 = STRING2 ] 如果两个字符串相同则为真 ;
[ STRING1 != STRING2 ] 如果字符串不相同则为真 ;
[ STRING1 ] 如果字符串不为空则为真,与-n类似
文件&文件夹&目录比较
COUNTER=0while [ $COUNTER -lt 5 ]doCOUNTER='expr $COUNTER+1'echo $COUNTERdone
while read textdoecho ${text}done < /home/infile
模式1)
....
;;
模式2)
....
;;
*)
.....
;;
esac
case行尾必须为单词“in”,每一个模式必须以右括号“)”结束。
双分号“;;”表示命令序列结束。
匹配模式中可是使用方括号表示一个连续的范围,如[0-9];使用竖杠符号“|”表示或。
最后的“*)”表示默认模式,当使用前面的各种模式均无法匹配该变量时,将执行“*)”后的命令序列。
转载于:https://www.cnblogs.com/NightPxy/p/9188226.html
[Linux]-Shell编程与规范相关推荐
- 《Linux Shell编程从初学到精通(第2版)》pdf
下载地址:网盘下载 内容简介 编辑 shell是用户与内核进行交互操作的一种接口,是linux最重要的软件之一.目前最流行的shell称为bash shell,bash shell脚本编程以其简洁.高 ...
- Linux Shell 编程学习总结
Shell 教程 Shell简介:什么是Shell,Shell命令的两种执行方式 Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成 ...
- linux实验三shell程序设计,实验三 LINUX SHELL编程
精选文库 -实验三LINUX SHELL 编程 四.实验内容 本实验包含两个具体的SHELL程序编写任务,较为全面地涉及了SHELL 程序的设计方法和技术.内容如下: 1.创建以下菜单程序: USER ...
- linux —— shell 编程(文本处理)
导读 本文为博文 linux -- shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed a ...
- 【“计算机科学与技术”专业小白成长系列】Linux Shell 编程 极简教程
Linux Shell 编程 极简教程 内容摘要 本文是 Linux Shell 编程简单入门.主要内容: Linux 简介 Shell 编程入门 Kotlin 脚本与 Shell 脚本 Linux ...
- linux简单重定向代码,Linux Shell编程(26)——代码块重定向
像 while, until, 和 for 循环代码块, 甚至 if/then 测试结构的代码块都能做到标准输入的重定向. 即使函数也可以使用这种重定向的格式 .所有的这些依靠代码块结尾的 < ...
- Linux Shell编程语句case
Linux Shell编程case语句 case语句 case语句适用于需要进行多重分支的应用情况. case分支语句的格式如下:case $变量名 in模式1)命令序列1;;模式2)命令序列2;; ...
- linux shell 处理日语,linux —— shell 编程(文本处理)
导读 本文为博文linux -- shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 1.基本文本处理 sort:用于排序,常 ...
- linux怎么退出shell编程,Linux Shell编程(11)——退出和退出状态
exit命令一般用于结束一个脚本,就像C语言的exit一样.它也能返回一个值给父进程. 每一个命令都能返回一个退出状态(有时也看做返回状态).一个命令执行成功返回0,一个执行不成功的命令则返回一个非零 ...
- 「Linux」Linux Shell 编程基础入门
Linux Shell 编程基础入门 1. 变量 1.1 变量定义 1.2 使用变量 1.3 引号 1.4 将命令的结果赋值给变量 1.5 位置参数 1.6 特殊变量及其含义 2. 字符串 2.1 字 ...
最新文章
- 翻转单词顺序与左旋转字符串
- Image Semantic Segmentation之DeepLab两个坑
- map for循环_Java_foundations_1 如何遍历Map
- java 伴随矩阵_C#计算矩阵的逆矩阵方法实例分析
- 逆水寒7月19服务器维护,逆水寒7月19日更新维护公告 更新内容汇总
- 2021年四川高考成绩在哪里查询,2021年四川高考成绩查询系统入口,四川高考成绩怎么近查询系统...
- 在html中代码规范是哪个键,HTML代码规范经验
- php ajax 上传视频教程,PHP+Ajax从入门到精通全套视频教程 传智播客Ajax实战教程 共15课...
- Windows 7 驱动开发
- 应急指挥调度管理系统|城市综合应急指挥调度系统
- 【打卡-Coggle竞赛学习2023年3月】对话意图识别
- 原生Js弹窗插件|web弹出层组件|对话框
- Python游戏末日丧尸
- c语言程序设计西安理工,c语言程序设计-西安理工大学三电教学中心!.doc
- apk瘦身 提高优化效果
- es 主要内存使用大户
- 辐射安全管理考试笔记
- 清明节 java_java生成12位唯一id 2013.3.12大三班清明节生成活动记录表.doc
- 计算机毕业设计系列基于基于SSM的小区物业信息管理系统
- 搜索其他计算机共享的打印机,打印机共享后其他电脑搜索不到_共享打印机查找不到_打印机品牌排行榜...
热门文章
- [渝粤教育] 中国地质大学 管理信息系统 复习题 (2)
- [渝粤教育] 西南科技大学 理论力学 在线考试复习资料(1)
- python2项目出现的错误(UnicodeDecodeError)
- 2018年湘潭大学程序设计竞赛 F	maze
- 第一模块:开发基础 第1章 练习及作业
- [转]隐马尔科夫模型HMM
- python-下拉框处理
- 6.解决AXIOS的跨域问题
- 全新的membership框架Asp.net Identity(2)——绕不过的Claims
- Linq 常用方法解释