shell结构

1.#!指定执行脚本的shell

2.#注释行

3.命令和控制结构

创建shell程序的步骤

第一步:创建一个包含命令和控制结构的文件。

第二步:修改这个文件的权限使它可以执行。使用chmod u+x

第三步:执行 ./example (也可以使用“sh example”执行)

Shell变量

变量:是shell传递数据的一种方法,用来代表每个取值的符号名。

Shell有两类变量:临时变量永久变量

临时变量是Shell程序内部定义的,其是用范围仅限于定义它的程序。对其它程序不可见。

包括:用户自定义变量,位置变量。永久变量是环境变量,其值不随shell脚本的执行结束而消失。

用户自定义变量

用户自定义的变量由字母或下划先开头,由字母,数字或下划线序列组成,并且大小写字母意义不同。

变量名长度没有限制。在使用变量值时,要在变量名前加上前缀“$”

如上如所示:chomd +x 4.2.sh 是对文件4.2.sh添加可执行权限。

123   $a 是一个整数赋值

1.23  $b 是一个小数赋值

xyz    $c 是一个字符串赋值

$d 赋值时出现空格,赋值有误。

efgh  xyz    $用引号将一个含空格的字符串引起来再赋值。

设置和使用变量

设置变量:习惯上用大写字母来命令变量。变量名只能以字母表中的字符开头,不能用数字。

变量赋值:赋值号“=” 两边应没有空格。

定义时赋值,如NUM=1

将一个命令得的执行结果赋给变量,如TIME=‘date’

将一个变量赋给另一个变量,如:A=$B

使用echo命令查看变量值。例如:echo $A

列出所有的变量:#set

包含多字的变量:$NAME=Mike Ron 运行时出错

应改为:$NAME=“Mike Ron”  或 $NAME='Mike Ron'

单引号和双引号的区别:单引号之间的内容原封不动地指定给了变量。

删除变量:#unset NAME

位置变量和特殊变量

Shell解释执行用户命令时,将命令行的第一个部分作为命令名,其它部分作

为参数。由出现在命令行上的位置确定的参数称为位置参数。

特殊变量:

$* 这个程序的所有参数

$# 这个程序的参数个数

$$ 这个程序的PID

$! 执行上一个后台命令的PID

$? 执行上一个命令的返回值 如果值为:0 则执行成

功,否则执行有问题

Shell的运算符

Shell中的运算符可以实现变量的赋值、算术运算、测试、比较等功能,运算符是构成表达式的基础。

变量赋值

Shell中使用“=”进行变量赋值,也可以用等号来改变或初值化一个变量的值。在进行赋值时是不考虑数据

类型的,这是Shell中变量数据类型的特点决定的。

算术运算符

算术运算符指的是可以在程序中实现加、减、乘、除等数学运算的运算符。Shell中常用的算术运算符如下所示。

+:对两个变量做加法

-:对两个变量做减法

*:对两个变量做乘法

/:对两个变量做除法

**:对两个变量做幂运算

%:取模运算,第一个变量除以第二个变量求余数

+=:加等于,在自身基础上加第二个变量。

-=:减等于,在第一个变量的基础上减去第二个变量

*=:乘等于,在第一个变量的基础上乘以第二个变量

/=:除等于,在第一个变量的基础上除以第二个变量

%=:取模赋值,在第一个变量对第二个变量取模运算,再赋值给第一个变量。

linux下shell程序(一)的更多相关文章

  1. linux 下shell程序(二)

    输入和输出 输入指的是Shell程序读入数据.有从文件读取.从用户输入读取等方式读入数据.输出指的是Shell程序的运行 结果的处理,可以显示到屏幕或保存到文件. 用ceho命令输出结果 echo $ ...

  2. 06 Linux下Shell介绍

    一.概述 每个人在成功登陆Linux后,系统会出现不同的提示符号,例如$,~,#等,然后你就可以开始输入需要的命令.若命令正确,系统就会依据命令的要求来执行,直到注销系统为止,在登陆到注销期间,输入的 ...

  3. Linux下C程序的编辑,编译和运行以及调试

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...

  4. .Neter玩转Linux系列之四:Linux下shell介绍以及TCP、IP基础

    基础篇 .Neter玩转Linux系列之一:初识Linux .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限 .Neter玩转Linux系列之三:Linux下的分区讲解 .N ...

  5. Linux 下Shell变量,环境变量的联系与区别

    Linux下Shell变量,环境变量的联系与区别 by:授客 QQ:1033553122 1.  简介 linux下的变量可分成两种:Shell变量和环境变量. Shell变量,又称本地变量,包括私有 ...

  6. Linux 下shell 编程学习脚手架

    linux body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-t ...

  7. Linux 下Shell的学习

    1.Shell学习 1.什么是Shell    shell是一个命令解析器,在操作系统的最外层,负责和用户对话,将用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果.2.什么是shell脚本 ...

  8. [转] linux下shell中使用上下键翻出历史命名时出现^[[A^[[A^[[A^[[B^[[B的问题解决,Linux使用退格键时出现^H解决方法

    [From] https://www.zmrbk.com/post-2030.html https://blog.csdn.net/suifengshiyu/article/details/40952 ...

  9. linux 下shell 编写脚本

    linux 下shell 编写脚本: 1.程序结构练习:编写一个脚本,给定一个正整数,计算出这个数所有位的数字之和. 例如:程序给定输入123,那么应该返回1+2+3=6. 2.程序结构练习:编写一个 ...

随机推荐

  1. 当客户端为RemoteAnywhere时Chef-server 使用knife-windows bootstrap的一个问题

    笔者在使用knife-windows bootstrap 一个安装了RemoteAnywhere的节点遇到一个坑: knife bootstrap 192.168.1.245 -r 'role[my_ ...

  2. Spark(四) -- Spark工作机制

    一.应用执行机制 一个应用的生命周期即,用户提交自定义的作业之后,Spark框架进行处理的一系列过程. 在这个过程中,不同的时间段里,应用会被拆分为不同的形态来执行. 1.应用执行过程中的基本组件和形 ...

  3. hbase集群安装和shell操作

    1.上传hbase安装包 2.解压 3.配置hbase集群,要修改3个文件(首先zk集群已经安装好了) 注意:要把hadoop的hdfs-site.xml和core-site.xml 放到hbase/ ...

  4. 解决MySQL数据导入报错Got a packet bigger than‘max_allowed_packet’bytes

    临时修改:mysql>set global max_allowed_packet=524288000;修改 #512M 这条语句可以在小黑窗里执行,也可以在navicat查询新建查询里执行.

  5. 【招聘App】—— React/Nodejs/MongoDB全栈项目:项目准备

    前言:最近在学习Redux+react+Router+Nodejs全栈开发高级课程,这里对实践过程作个记录,方便自己和大家翻阅.最终成果github地址:https://github.com/66We ...

  6. Managed Media Aggregation using Rtsp and Rtp

    his article was written almost 2 years ago, it's content may not reflect the latest state of the cod ...

  7. PHP+MYSQL的搭建

    如今准备研究下微信的开发,所以要研究下PHP了,但对这个平台还是非常陌生的,所以网上找了些资料并測试,现贴出来给大家參考. 第一步:我们先下载[PHPStudy 2013]或者最新版本号: 下载地址: ...

  8. Jfinal极速开发微信系列教程(三)--------------对JSP的支持以及部署Tomcat运行异常问题

    本文章主要解决以下问题: 1.Jfianl对JSP的支持2.Jfianl Maven项目部署到Tomcat,启动项目异常问题解决 第一个问题重现截图解决方案:1.在configConstant中添加视 ...

  9. Androidproject师进阶之路 :《Android开发进阶:从小工到专家》上市啦!

    封面 文件夹1 文件夹2 - 当当购买链接 - 京东购买链接 为什么写这本书 写这本书的念头由来已久了. 或许是从我打算写<Android源代码设计模式解析与实战>那时起就萌生了这个念头, ...

  10. 字符编码简介:ASCII,Unicode,UTF-8,GB2312

    字符编码简介:ASCII,Unicode,UTF-8,GB2312 1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和 1两种状态,因 ...