Shell语言
1.shell脚本规范以.sh结尾


2.运行

3.赋予权限,查询shell的执行过程


输出时间的

输出日历

输出一年的日历

修改语言





计算机




read –t 3 –p “1111111111” # -t 3是超越时间,即等待3秒钟,如果不输入东西,则会自动退出。在shell脚本中,如果用户不输入东西,系统不自动退出,则也是一个bug。
打印输出2行


简单的shell脚本



Shell内设了用于接收参数的变量,变量之间可以使用空格间隔。例如$0对应的是当前shell脚本程序的名称,$#对应的是总共有几个参数,$*对应的是所有位置的参数值,$?对应的是显示上一次命令的执行返回值,而$1、$2、$3…….则分别对应着第N个位置的参数值
验证下:


按照测试对象来划分,条件测试句可以分为4种:
文件测试语句
逻辑测试语句
整数值比较语句
字符串比较语句
文件测试即使用条件来判断文件是否存在或权限是否满足等情况的运算符
-d 测试文件是否为目录类型
-e 测试文件是否存在
-f 判断是否为一般文件
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行
验证:
如果返回值为0,则目录存在;如果返回值为非零的值,则意味着目录不存在:


[root@localhost ~]#[ -f /etc/fstab]
[root@localhost ~]#echo $?
0
Shell终端中逻辑”与”的运算符号是&&,命令执行成功后才会执行它后面的命令。

逻辑”或”,它在Linux系统中的运算符号为||,命令执行失败后才会执行它后面的命令。




可用的整数比较运算符
-eq 是否等于
-ne 是否不等于
-gt 是否大于
-lt 是否小于
-le 是否等于或小于
-ge 是否大于或等于




If 条件测试语句
If条件语句的单分支结构由if、then、fi关键词组成,而且只在条件成立后才执行预设的命令,相当于口语的”如果……..那么………”。单分支的if语句属于最简单的一种条件判断结构。


$?变量,作用是显示上一次命令的 执行返回值。如果语句执行成功,则返回0,否则1.



If条件语句的多分支结构是工作中最常使用的一种条件判断结构,尽管相对复杂但是更加灵活。


For条件循环语句
For循环语句允许脚本一次性读取多个信息,然后逐一对信息进行操作处理,当要处理的数据有范围时,使用for循环再合适不过了 。
在脚本中使用read命令读取用户输入的密码值,然后赋值给PASSWD变量,并通过-p参数向用户显示一段提示信息,告诉用户正在输入的内容即将作为账户密码,在执行该脚本后会自动使用从列表文件forlist.txt中获取到所有的用户名称,然后逐一使用id用户名命令查看用户信息,并使用$?判断这条命令是否执行成功,也就是判断该用户是否已经存在。
/dev/null是一个被称作linux黑洞的文件,把输出信息重定向到这个文件等同于删除数据,可以让用户的屏幕窗口保持简洁。


/etc/passwd中存放用户名的,可以查看,是否创建成功。
判断主机是否存在,可以使用列表,和for一起使用。


然后前面的双分支if条件语句与for循环语句相结合 ,让脚本从主机列表文件ipadd.txt中自动读取ip地址并将其赋值给HLIST,从而判断ping命令执行后的返回值来逐个测试主机是否在线。




While条件循环语句
使用多分支的if条件测试语句与while条件循环语句,编写一个用来猜测数值大小的脚本Guess.sh。该脚本使用$RANDOM变量来调取出一个随时的数值将这个随机数对1000进行取余操作,并使用expr命令取得其结果,再用这个数值与用户通过read命令输入的数值进行比较判断。


赋予权限



Case条件测试语句
编写脚本key.sh,提示用户输入一个字符并将其赋值给变量key,然后根据变量key的值向用户显示其值是字母、数字还是其他字符。




Shell语言的更多相关文章
- 一篇文章让你彻底掌握 shell 语言
一篇文章让你彻底掌握 shell 语言 由于 bash 是 Linux 标准默认的 shell 解释器,可以说 bash 是 shell 编程的基础. 本文主要介绍 bash 的语法,对于 linux ...
- linux shell语言编程规范安全篇之通用原则【转】
shell语言编程规范安全篇是针对bash语言编程中的数据校验.加密与解密.脚本执行.目录&文件操作等方面,描述可能导致安全漏洞或风险的常见编码错误.该规范基于业界最佳实践,并总结了公司内部的 ...
- 一篇详细的linux中shell语言的字符串处理
1 cut是以每一行为一个处理对象的,这种机制和sed是一样的.(关于sed的入门文章将在近期发布) 2 cut一般以什么为依据呢? 也就是说,我怎么告诉cut我想定位到的剪切内容呢? cut命令主要 ...
- 从入门到掌握 - 系统学习shell语言
简介 什么是 shell Shell是一种程序或命令行解释程序,用于解释用户直接输入的用户命令或从文件中读取的用户命令,然后将 它们传递给操作系统以进行操作或处理.要注意,这个过程是解释而不编译脚本, ...
- Shell语言系列之一:文件处理
前言   标准输入/输出可能是软件工具设计原则里最基本的观念了.有很多UNIX程序都遵循这一设计历练.默认情况下,他们会读取标准输入,写入标准输出,并将错误信息传递给标准错误输出. & ...
- Linux Shell编程入门
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...
- Shell脚本学习入门(一)
1.Shell脚本是解释型的语言. 2.Shell脚本建立的基本步骤: 3.Shell脚本文件的第一行一般可以是:"#! 路径名 -(选项)", 为了要使Shell脚本有移植性,请 ...
- shell 脚本关键字&符号
shell概念 "shell"既是一种解释型编程语言,也是一个这种编程语言的解释器的名字 shell是解释型语言,就是解释器会一条一条的翻译每一条语句并执行,对比之下,C语言是编译 ...
- Shell—学习之心得
由于项目要招聘需要有经验shell开发人员(awk编程),而作为技术面试官(暂时)的我对shell编程不太熟:当然以前也写过一些shell脚本来满足项目的需求—备份环境,数据库(逻辑).假如只是针对a ...
随机推荐
- C++入门篇十二
成员变量和成员属性: 静态成员函数和静态成员变量是不属于对象的,所以不占有空间,非静态成员是属于对象的,占有存储空间,空类大小1 #include "pch.h" #include ...
- 【Git】git rebase报错new blank line at EOF.处理
执行git rebase报错如下: First, rewinding head to replay your work on top of it... Applying: 本次提交信息 .git/re ...
- LoadRunner HTTP+Json 接口性能测试
接口的请求参数和返回结果均是JSON字符串,请求可以用POST或者GET方法.先说GET方法: 一.GET方法测试 Insert - New step -选择Custom Request - web_ ...
- Bean拷贝
相当于C#的AutoMapper public class CloneUtils { /** * 拷贝对象 * @param source * @param classType * @return * ...
- 大数据ssh疑点跟踪
相信运维的对ssh免密登陆应该是对这个再清楚不过的吧,由于我们大数据对于安全这方便管控的很严格,单独找一台物理机作为跳板机,其他的机器都必须要从这个跳板机免密登陆,由于机器比较的多,其中dn30这个域 ...
- Excel—文本函数
LEFT(从左开始取文本的函数)就是这个函数可以帮我们取文本,按照从左到右的顺序取 函数语法:=LEFT(要取的文本所在的单元格,从左到右取前几位)这表示的是字符,一个英文字母占一个字符,一个汉子也占 ...
- gulp 粗粗学习 记录下
看视频学习 粗粗记录下 以便以后学习 1.初记录 gulp.task //定义一个任务 gulp.src //锁定到做task任务的文件路径 gulp.dest //锁定到任务做完后文件去向的路径 g ...
- 神器PHPStorm个人最常用快捷键
PHPStorm是目前PHP开发者最常用的IDE之一,善用快捷键可以极大地提升效率,网上有很多盘点,多而全,但很多要么不实用,要么操作不方便,下面盘点一下个人平时最常用的,亲测有效. CTRL+N 查 ...
- Pytorch
torch.nn.utils.rnn: pack_padded_sequence() pad_packed_sequence() Notice: The padded embedding metrix ...
- CF76A.Gift [最小生成树]
CF76A.Gift 题意:noi2014魔法森林弱化版QwQ,最小化\(max(g_i)*G + max(s_i)*S\)的最小生成树 考虑按g升序加边,用已在生成树中的边和新加入的边求当前最小生成 ...