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 ...
随机推荐
- python正则表达式--flag修饰符、match对象属性
正则表达式—修饰符 正则表达式可以包含一些标志修饰符来控制匹配模式,用在正则表达式处理函数中的flag参数中,为可选参数. (1) re.I 全写(re.IGNORECASE) 表示使匹配时,忽略大小 ...
- php 常用的知识点归集(下)
24.静态属性与静态方法在类中的使用 需求:在玩CS的时候不停有伙伴加入,那么现在想知道共有多少人在玩,这个时候就可能用静态变量的方法来处理 利用原有的全局变量的方法来解决以上的问题 <?php ...
- python-shutil学习
shutil:高级的 文件.文件夹.压缩包 处理模块 1. shutil.copyfileobj(fsrc, fdst[, length])(copyfileobj方法只会拷贝文件内容)将文件内容拷贝 ...
- [转]Go里面的unsafe包详解
Golang的unsafe包是一个很特殊的包. 为什么这样说呢? 本文将详细解释. 来自go语言官方文档的警告 unsafe包的文档是这么说的: 导入unsafe的软件包可能不可移植,并且不受Go 1 ...
- vue结构详解
相关文件和文件夹的含义: build 文件夹: 里面是对 webpack 开发和打包的相关设置,包括入口文件.输出文件.使用的模块等:config 文件夹: 主要是指定开发和打包中的静态资源路径.要压 ...
- python中thread的setDaemon、join的用法的代码
下面内容是关于python中thread的setDaemon.join的用法的内容. #! /usr/bin/env python import threading import time class ...
- Javal连接字符串为Json
public static String concatJson(String[] keys,String[] values,String[] alreadyJsonKeys){ if(keys==nu ...
- ASP.NET Core快速入门学习笔记(第3章:依赖注入)
课程链接:http://video.jessetalk.cn/course/explore 良心课程,大家一起来学习哈! 任务16:介绍 1.依赖注入概念详解 从UML和软件建模来理解 从单元测试来理 ...
- os模块walk方法
1.os.walk import os for root, dirs, files in os.walk(top, topdown=False): for name in files: os.remo ...
- Chrome 无法自动填充密码
问题: chrome 同步一切正常,在密码管理器https://passwords.google.com 也能看到自己保存的密码 但是在 设置 - 密码中看不到保存的密码,只能看到 “一律不保存” 的 ...