Shell 脚本编程之基础

最近闲着无聊,把笔记写在这吧

0x00 特殊符号和常见的运算符
<1>特殊符号
$*:命令行所有参数组成的字符串
$@:命令行所有参数组成的字符串
$n:n位数字,$0表示命令名称,$1表示命令行第一个参数,以此类推
$?:上一个命令的返回值,如果正常退出则返回0,反之为非0值
$$:当前进程的进程号PID
$!:后台运行的最后一个进程的进程号
$#:位置参数的数量

<2>算术运算符
+,-,*,/,%
<3>比较运算符
-eq:等于比较
-ne:不等于比较
-lt:小于比较
-gt:大于比较
-le:小于等于比较
-ge:大于等于比较
<3>逻辑运算符
-a:逻辑与
-o:逻辑或
!:逻辑非
<4>字符串比较符
-z:测试字符串
-n:测试字符串是否为非零
= :等于一个字符串

!=:不等于某个字符串


0x01 常见环境变量
HOME:当前用户的主目录
PATH:命令搜索路径
PWD:用户的当前目录
UID:当前用户标识符
LOGNAME:用户登录名
TERM:终端的类别


0x02 shell脚本编程常用运算命令
let命令:只能进行整数间的比较
expr命令
test命令
bc命令


0x03 shell脚本之选择结构

if语句格式:
单if分支语句
if experssion
then
fi

多if分支语句
if expressionthenstatementeslestatement
fi
if语句嵌套
if expressionthenif expressionthenstatementelsestatementfielsestatement
fi

case 语句格式:

case expression in
mode1)
statement
;;
mode2)
statement
;;
......
moden)
statement n
;;
esac


0x04 shell脚本编程之循环
while循环语句格式
while [expression]
do
statement
done

or
while((expression))dostatementdone

for循环语句格式
<1>shell风格for格式
for variable in list
do
statement
done
<2>c语言风格for格式
for((expr1; expr2; expr3))
do
statement
done

先写这么多吧,想到在写

转载于:https://www.cnblogs.com/seven95/p/6323512.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 下的DMA浅析

DMA是一种无需CPU的参与就可以让外设和系统内存之间进行双向数据传输的硬件机制。使用DMA可以使系统CPU从实际的I/O数据传输过程中摆脱出来&#xff0c;从而大大提高系统的吞吐率。DMA经常与硬件体系结构特别是外设的总线技术密切相关。 一、DMA控制器硬件结构 DMA允许外围设备…

Node.jsNPM的安装与配置(转)

Node.js安装与配置 Node.js已经诞生两年有余&#xff0c;由于一直处于快速开发中&#xff0c;过去的一些安装配置介绍多数针对0.4.x版本而言的&#xff0c;并非适合最新的0.6.x的版本 情况了&#xff0c;对此&#xff0c;我们将在0.6.x的版本上介绍Node.js的安装和配置。&#…

从值栈中获取数据

使用struts2的标签ognl表达式获取值栈数据 <s:property value"ognl表达式"/> 一、获取字符串 示例 打印后台string变量的值 jsp页面 Java代码 二、获取对象 示例 打印user对象的userName与userPwd的值 jsp页面 java代码 三、获取list集合 Java代码 1.通过list[…

SQL 事务

事务的acid理解简介ACID&#xff0c;是指在可靠数据库管理系统&#xff08;DBMS&#xff09;中&#xff0c;事务(transaction)所应该具有的四个特性&#xff1a;原子性&#xff08;Atomicity&#xff09;、一致性&#xff08;Consistency&#xff09;、隔离性&#xff08;Isola…

网络协议复习

不同协议所属的层次如下图&#xff1a; IP IP地址一开始是分类编址&#xff0c;到了20世纪90年代更换为无分类编址。分类编址时IP地址共有五类ABCDE。对于ABC类地址&#xff0c;IP地址都可以划分为网络标识和主机标识。从一个IP地址中提取网络地址要用网络掩码和IP地址进行与运…

CSDN-markdown编辑器使用手册

Markdown手册欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也…

Office 365身份认证管理-添加并验证联合认证域

首先需要安装MicrosoftOnlineServicesSign-inAssistant接受许可并安装安装完成接着安装WindowsAzureActiveDirectoryModuleforWindowsPowerShell安装程序启动接受许可设置安装路径开始安装安装完毕登陆并打开office365管理中心&#xff0c;选择添加一个域开始域添加向导输入我们…

Linux 驱动面试题总结

1、 Linux设备中字符设备与块设备有什么主要的区别&#xff1f;请分别列举一些实际的设备说出它们是属于哪一类设备。 字符设备&#xff1a;字符设备是个能够像字节流&#xff08;类似文件&#xff09;一样被访问的设备&#xff0c;由字符设备驱动程序来实现这种特性。字符设备…

codevs1040统计单词个数(区间+划分型dp)

1040 统计单词个数 2001年NOIP全国联赛提高组 时间限制: 1 s空间限制: 128000 KB题目等级 : 黄金 Gold题目描述 Description给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入&#xff0c;且保证每行一定为20个)。要求将此字母串分成k…

翻译词典推荐

前言 今天在看一个API&#xff0c;遇到一些生词不会&#xff0c;花了些时间在选择词典上面&#xff0c;做个总结。 我的经历 先说说我使用词典的经历吧&#xff1a; 无网络条件&#xff1a;首选金山词霸&#xff0c;词霸本身1G多安装包配合将近2G的词典包&#xff0c;即便是断网…

用URLGather来管理和保存你的页面

下载链接&#xff1a;http://url-gather.software.informer.com/download/#downloading安装的过程简单&#xff0c;这里不一一叙述。安装成功后&#xff0c;找到软件安装的路径&#xff0c;如下&#xff1a;进入软件之后&#xff0c;你只要熟悉以下的功能就能轻松的管理你的网站…

Exynos4412 中断处理流程详解

Linux 中&#xff0c;当外设触发中断后&#xff0c;大体处理流程如下&#xff1a; a -- 具体CPU architecture相关的模块会进行现场保护&#xff0c;然后调用machine driver对应的中断处理handler&#xff1b; b -- machine driver对应的中断处理handler中会根据硬件的信息获取…

XPath学习笔记

XPath语法 XPath使用路径表达式选取XML文档中的节点或者节点集。 路径表达式 表达式描述nodename获得该节点下的所有节点/从根节点开始//从匹配选择的当前节点开始&#xff0c;不考虑位置.选取当前节点…选取当前节点的父节点选取属性 比如&#xff1a; 表达式描述nation选…

Exynos4412 中断驱动开发相关问题总结

1、Linux 中如何标识一个外部中断&#xff1f; 在linux kernel中&#xff0c;我们使用下面两个ID来标识一个来自外设的中断&#xff1a; a -- IRQ number CPU需要为每一个外设中断编号&#xff0c;我们称之IRQ Number。这个IRQ number是一个虚拟的interrupt ID&#xff0c;和硬…

delphi 最全日期格式_DateUtils时间单元说明

DateUtils时间单元说明 CompareDate 函数 比较两个日期时间值日期部分的大小 CompareDateTime 函数 比较两个日期时间值的大小 CompareTime 函数 比较两个日期时间值时间部分的大小 DateOf 函数 去除日期时间值的时间部分 DateTimeToJulianDate 函数 转换日期时间值为儒略日 Da…

python基础学习笔记

变量赋值 赋值运算符 是主要的赋值运算符&#xff0c;其他的是增量赋值运算符。 aint 12 astring python afloat 3.14 alist [1,3,4]赋值并不是将一个值赋给一个变量。python中对象是通过引用传递的&#xff0c;是将对象的应用传递给变量。 >>> x1 >>&g…

Exynos4412 IIC 总线驱动开发相关问题总结

一 、问题 1、IIC总线上的设备是怎么描述的&#xff1f; struct i2c_client{struct device dev;...};2、IIC总线上的驱动是怎么描述的&#xff1f; struct i2c_driver {struct device_driver driver;};3、IIC总线上的设备和驱动是怎么匹配的 1)、对于 Cortex - A8 通过driver…

sersync+rsync实现实时同步

在分布式应用中会遇到一个问题&#xff0c;就是多个服务器间的文件如何能始终保持一致。一种经典的办法是将需要保持一致的文件存储在NFS上&#xff0c;这种方法虽然简单方便但却将本来多点的应用在文件存储上又变成了单点&#xff0c;这违背了分布式应用部署的初衷。为了保留多…

Python爬虫利器五Selenium用法

在上一节我们学习了 PhantomJS 的基本用法&#xff0c;归根结底它是一个没有界面的浏览器&#xff0c;而且运行的是 JavaScript 脚本&#xff0c;然而这就能写爬虫了吗&#xff1f;这又和 Python 有什么关系&#xff1f;说好的 Python 爬虫呢&#xff1f;别急&#xff0c;接下来…

Cronolog 分割 Tomcat8 Catalina.out日志 (转)

默认情况下&#xff0c;tomcat的catalina.out日志文件是没有像其它日志一样&#xff0c;按日期进行分割&#xff0c;而是全部输出全部写入到一个catalina.out&#xff0c;这样日积月累就会造成.out日志越来越大&#xff0c;给管理造成了不便&#xff0c;为了实现像其它日志文件…