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语言的更多相关文章

  1. 一篇文章让你彻底掌握 shell 语言

    一篇文章让你彻底掌握 shell 语言 由于 bash 是 Linux 标准默认的 shell 解释器,可以说 bash 是 shell 编程的基础. 本文主要介绍 bash 的语法,对于 linux ...

  2. linux shell语言编程规范安全篇之通用原则【转】

    shell语言编程规范安全篇是针对bash语言编程中的数据校验.加密与解密.脚本执行.目录&文件操作等方面,描述可能导致安全漏洞或风险的常见编码错误.该规范基于业界最佳实践,并总结了公司内部的 ...

  3. 一篇详细的linux中shell语言的字符串处理

    1 cut是以每一行为一个处理对象的,这种机制和sed是一样的.(关于sed的入门文章将在近期发布) 2 cut一般以什么为依据呢? 也就是说,我怎么告诉cut我想定位到的剪切内容呢? cut命令主要 ...

  4. 从入门到掌握 - 系统学习shell语言

    简介 什么是 shell Shell是一种程序或命令行解释程序,用于解释用户直接输入的用户命令或从文件中读取的用户命令,然后将 它们传递给操作系统以进行操作或处理.要注意,这个过程是解释而不编译脚本, ...

  5. Shell语言系列之一:文件处理

    前言 &nbsp 标准输入/输出可能是软件工具设计原则里最基本的观念了.有很多UNIX程序都遵循这一设计历练.默认情况下,他们会读取标准输入,写入标准输出,并将错误信息传递给标准错误输出. & ...

  6. Linux Shell编程入门

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...

  7. Shell脚本学习入门(一)

    1.Shell脚本是解释型的语言. 2.Shell脚本建立的基本步骤: 3.Shell脚本文件的第一行一般可以是:"#! 路径名 -(选项)", 为了要使Shell脚本有移植性,请 ...

  8. shell 脚本关键字&符号

    shell概念 "shell"既是一种解释型编程语言,也是一个这种编程语言的解释器的名字 shell是解释型语言,就是解释器会一条一条的翻译每一条语句并执行,对比之下,C语言是编译 ...

  9. Shell—学习之心得

    由于项目要招聘需要有经验shell开发人员(awk编程),而作为技术面试官(暂时)的我对shell编程不太熟:当然以前也写过一些shell脚本来满足项目的需求—备份环境,数据库(逻辑).假如只是针对a ...

随机推荐

  1. Mongodb 安装错误汇总

    Failed to restart mongod.service: Unit mongod.service not found. 解决方法: Most probably unit mongodb.se ...

  2. 浅谈《Linux就该这么学》

    就在去年十月份的时候,偶尔在Linux技术群了看到别人分享的<Linux就该这么学>,好奇的就点进去看看,当时看完首页,突然发现刘遄老师说到心坎里去了,于是就仔细看了看红帽认证的讲解以及后 ...

  3. tensorflow调试tfdbg

    tensorflow调试工具:tfdbg 使用教程:https://www.cnblogs.com/hellcat/articles/7812119.html 遇到的错误信息及解决方案 ModuleN ...

  4. 十五丶IO model

    事件驱动模型 上节的问题: 协程:遇到IO操作就切换. 但什么时候切回去呢?怎么确定IO操作完了? 很多程序员可能会考虑使用“线程池”或“连接池”.“线程池”旨在减少创建和销毁线程的频率,其维持一定合 ...

  5. 运行maven命令的时候出现jre不正确

    出错详情: Unable to locate the Javac Compiler in: C:\Program Files\Java\jre1.6.0_07\..\lib\tools.jar Ple ...

  6. 在被vue组件引用的 js 文件里获取组件实例this

    思路: 通过调用函数 把 组件实例this  传递 到 被应用的 js文件里 实例: 文件结构 在SendThis.vue 文件中引用 了modalConfig.js import modalConf ...

  7. Java实现一个简单的循环队列

    在某些时候,我们不能被要求像数组一样可以使用索引随机访问,而是需要被限制顺序处理业务,今天介绍一种先进先出(FIFO)的线性数据结构:队列, 当然,还有后进先出(LIFO)的处理方式,即为栈(后续有时 ...

  8. 分享:使用 TypeScript 编写的游戏代码

    <上篇博客>我写出了我一直期望的 JavaScript 大型程序的开发模式,以及 TS(TypeScript) 的一些优势.博客完成之后,我又花了一天时间试用 TS,用它来重构之前编写的一 ...

  9. linux查看空间情况----df与du命令

    1.查看整个磁盘空间使用情况,可以使用命令 :df   -h 2.获取当前的文件夹下的磁盘使用情况,可以使用如下命令:du --max-depth=1 -h 使用 du --max-depth=1 - ...

  10. 多标签caffe重新编译

    说明: Caffe自带的图像转LMDB接口只支持单label,对于多label的任务,可以使用HDF5的格式,也可以通过修改caffe代码来实现.本篇文章介绍怎么通过修改DataLayer来实现带Mu ...