shell脚本:定义,连接符,输入输出流,消息重定向,命令的退出状态,申明变量,运算符,控制语句

定义:linux下的多命令操作文件

连接符: ;:用于命令的分隔符,命令会从左往右依次执行

&&:用于命令的分隔符,出错命令会停止执行

||:用于命令的分隔符,出错才会继续执行

&:后台执行,

输入输出流  标准输出:命令的给出的正确消息,数值描述符:1

标准错误:命令的给出的错误消息,数值描述符:2

标准输入:接受内容,数值描述符:0

消息重定向  输出重定向   >    >>

合并输出消息1>&2   2>&1

输入重定向<

命令的退出状态   0:正确的

非0:错误的

$?:命令退出值

ech0 string:输出字符串

申明变量      命令行直接申明:varName=value

read varName1   varName2.......

取变量值:${varName}

运算符      test  expression  或者  [expression]

expr:数值计算

控制语句:if  select   while   for   continue   break

变量 含义
$0 当前脚本的文件名
$n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
$# 传递给脚本或函数的参数个数。
$* 传递给脚本或函数的所有参数。
$@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。
$? 上个命令的退出状态,或函数的返回值。
$$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。

问题1:  标准输出。标准错误,标准输入的理解

2.   /dev/null  是伪设备,空文件设备

3.   1>&2,2>&1要理解其中的意思  ???????????????????????

比如:id tom 2> /dev/null    2的意思是如果你的命令出错,错误报告直接就删除了

不会显示在屏幕上,如果命令是对的,正常输出显示出来。

如果用户tom已经存在,命令正常执行,正常输出,uid=606(tom)gid=607(tom)

组=607(tom)

如果用户tom不存在,,则命令出错,执行上述重定向到/dev/null上,不会显示在屏幕上。

4.运算符的应用注意事项:

编写第一行加  #!

编写完之后用chmod加可执行权限

执行编写好的程序是  ./  + 程序名字

比如:加法运算程序

sum=0

for((i=1;i<=$#;i++));

do

sum=$(($sum +${!i}));

或 sum=$sum +${!i} ;

done

echo "sum = ${sum]";

linux技能点七 shell的更多相关文章

  1. linux学习(七)Shell编程中的变量

    目录 shell编程的建立 shell的hello world! Shell的环境变量 使用和设置环境变量 Shell的系统变量 用户自定义变量 @(Shell编程) shell编程的建立 [root ...

  2. 自学Linux命令行与Shell脚本之路

    自学Linux命令行与Shell脚本之路[第一回]:初识Linux   1.1 自学Linux Shell1.1-Linux初识 1.2 自学Linux Shell1.2-Linux目录结构 1.3  ...

  3. 聊聊我怎么系统学习Linux技能并快速提高的

    随着电子信息科技时代的发展,学会使用计算机在我们的生活中成为了必不可少的一项技能.而作为计算机中的三大操作系统之一的Linux更是饱受计算机爱好者们的喜爱.今天我们就来和大家一起聊一聊Linux操作系 ...

  4. 20135302魏静静——linux课程第七周实验及总结

    linux课程第七周实验及总结 实验及学习总结 1. 编译链接的过程和ELF可执行文件格式(以hello为例) GNU编译系统编译源码: 首先,运行C预处理器(cpp),将.c文件翻译成.i文件——g ...

  5. Linux学习笔记(七) 查询系统

    1.查看命令 (1)man 可以使用 man 命令名称 命令查看某个命令的详细用法,其显示的内容如下: NAME:命令名称 SYNOPSIS:语法 DESCRIPTION:说明 OPTIONS:选项 ...

  6. Linux命令行与Shell脚本编程大全

    快来参加<Linux命令行与Shell脚本编程大全>学习吧,提升技能,展示自我. 点击链接即可进入学习:https://s.imooc.com/WTmCO6H 课程亮点适合零基础读者,从零 ...

  7. Linux基础:初识shell之系统命令基础

    一 shell介绍 shell Shell 中文意思贝壳,寓意类似内核的壳.Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务,简而言之就是只要能够操作应用 ...

  8. Linux安全基础:shell及一些基础命令

    1.什么是shell?Shell是用户和Linux操作系统之间的接口.Linux中有多种shell,其中缺省使用的是Bash. 2.shell的分类(1)bash bash shell 是 Bourn ...

  9. 利用ganymed-ssh2远程执行其它Linux机器上的shell命令

    实际应用中,有时候需要从web管理界面上,远程去启动其它linux主机上的程序,利用ssh协议可以方便的满足这一需求.事实上hadoop架构中,从nn上启动dn时,就是利用了免密码ssh登录.gany ...

随机推荐

  1. Android 自己实现更新下载自动安装

    1.一些公司开发完一款App之后可能并不会去上架App商店,但事后期也需要定时进行维护更新,所以会选择把打包好的apk 发布到自己的服务器,然后在数据库建一个版本号的表,然后剩下的就交给你androi ...

  2. Fiddler抓包Fiddler过滤

    1.User Fiters启用 2.Action Action:Run Filterset now是否运行,Load Filterset加载,Save Filterset保存: 3.Hosts过滤 Z ...

  3. element-ui 上传图片 后清空 图片 显示

    使用element-ui组件,用el-upload上传图片,上传图片后再次打开还是会有原来的图片,想要清空原来上传的图片,只需要在组件上绑定ref,在提交成功后的方法里调用this.$refs.upl ...

  4. Deploy a plain HTTP registry

    当docker pull a.b.com/ubuntu:14.04的时候,如果提示:“Docker x509 insecure registry”之类的,说这个registry不安全的,如果就是想在a ...

  5. helm安使用

    参照:https://juejin.im/post/5b6590afe51d4519962f02b1

  6. Maven多模块工程打包指定模块工程方法

    Maven多模块工程打包指定模块工程执行如下命令: mvn clean package -pl  指定模块工程名 -am 参数说明: -am --also-make 同时构建所列模块的依赖模块:-am ...

  7. SpringBoot读取Linux服务器某路径下文件\读取项目Resource下文件

    // SpringBoot读取Linux服务器某路径下文件 public String messageToRouted() { File file = null; try { file = Resou ...

  8. mysql数据库事务类型

    出自:https://blog.csdn.net/u014439239/article/details/78086729 数据库事务有不同的隔离级别,不同的隔离级别对锁的使用是不同的,锁的应用最终导致 ...

  9. spring boot的actuator

    actuator官方的介绍 Spring Boot includes a number of additional features to help you monitor and manage yo ...

  10. zookeeper实现的分布式锁

    在分布式系统中,多个jvm对共享资源进行操作时候,要加上锁,这就是分布式锁 利用zookeeper的临时节点的特性,可以实现分布式锁 public class ZookeeperDistrbuteLo ...