SHELL编程规范与变量

  shell相比标准开发语言比如JAVA,C,C++来说还是比较简单的,其实就是一堆命令的集合而已,初学者从简单的shell脚本学起,至于shell编程还是要有编程思想在里面,因此,循序渐进很重要,先研究格式语法,再研究编程,今天就列举一些shell里的概念,以便我们理解shell编程。

1、脚本声明

  在写body之前要对shell脚本进行声明,告诉操作系统,这是一个shell文件,不声明的话系统默认为用bash来执行脚本。格式如下

  #!/bin/bash(这里的bash可以换成sh、dash、tcsh、csh等)

2、脚本注释

  注释格式和一般的编程语言类似,为:#+内容

3、脚本文件名称规范

  我们可以用.sh结尾,这是比较规范的写法,但是注意,其实linux里这个.sh不作为识别文件类型的参照,仅仅是用来标记这是一个脚本文件而已,方便我们维护。

4、脚本执行方式

  source  [文件名]

  .  [文件名]

  ./  [文件名]  (注意这种方式文件需要有执行权限)

  bash/dash/sh    [文件名]

5、管道符号

  管道符号的意思是把上一条命令的执行结果作为下一条命令的参数

  例如:cat /etc/passwd | grep "bash" | wc -l (统计下passwd文件下有"bash"的记录有多少行)

6、重定向

  <0         /dev/stdin    标准输入

  1>   /dev/stdout 标准输出                       >>   追加而不是覆盖

  2>   /dev/stderr 标准错误输出      2>>   追加而不是覆盖

  &>   混合输出                &>>   追加而不是覆盖

注意:符号里的 0、1、2数字可以省略

例:

  ls > file   (意思是把ls查询出来的内容放入file文件里,而不是显示在屏幕上)

  ls &>  /dev/null  (把结果放入黑洞设备,不显示出来)

例:

  cat test.txt  和  cat < test.txt 文件是一个意思

7、自定义变量

  由用户自己定义、修改和使用,变量名以字母或下划线开头、区分大小写

例1:

  name=Tom

  echo $name

  Tom

例2:

  name=‘zhang san‘

  echo $name

  zhang san
例3:

  name=bb

  Name="$nameLY"

  echo Name

  bbLY

例4:

  Name=‘$nameLY‘

  echo Name

  $nameLY
例5:

  TIME=`data`

  echo $TIME

  2016年10月25日星期五  12:32:55 CST

例6:

  TIME=$(data)

  echo $TIME

  2016年10月25日星期五  12:32:55 CST

例7:交互定义变量

输入:read -p "please input your name:"NAME  

交互:please input your name:zhangsan

输入:echo $NAME

输出:zhangsan

例子总结:""识别里面的变量、‘‘把里面当一个字符串、``把里面的命令执行结果定义

8、预定义变量

  由bash预先定义好的一类特殊变量,用户只能用不能改。

~] #cat mybak.sh

#!/bin/bash

tar zcf $* $>/dev/null

echo "已执行$0脚本"

echo "共完成$#个对象的备份"

echo"具体的内容包括:$*"

~] #./mybak.sh  /etc/passwd    /etc/shadow

已执行./mybak.sh脚本

共完成2个对象的备份

具体的内容包括:/etc/passwd    /etc/shadow

解析:$*或[email protected]保存脚本要处理的参数、$0保存脚本名称、$#保存了脚本要处理的参数个数、$?保存着命令或脚本的运行状态码

9、位置变量

  $n(n为1-9)就是位置变量

~] #vi test.sh

#!/bin/bash

echo $0

echo $1

echo $2

echo $3

~] #source test.sh zhangsan cloud  yes

./test.sh

zhangsan

cloud

yes

注:$0是预定义变量,保存脚本名称

10、环境变量

  使用env命令可以查看当前工作环境下的环境变量,PATH变量用于设置可执行程序的默认搜索路径,环境变量的全局配置为/etc/profile每个用户还有自己独立的配置文件 ~/.bash_profile。把路径可执行文件的路径写到PATH变量中,就可以直接用路径里的可执行文件。

例如:apachectl start

方法1:PATH=$PATH:/root   (临时生效,/root为可执行文件的存放路径,这句话意思是把/root这个目录添加到PATH变量里,是临时写入内存的)

方法2:echo "PATH=$PATH:/root"  >> /etc/profile (永久生效)

11、变量的作用范围

  默认情况下新定义的变量只在当前shell环境中有效,因此称为局部变量,当进入子程序或者新的shell环境时,局部变量将无法再次使用,为了解决这个问题,可以用export指定为全局变量。

  格式1:export 变量名

  格式2:export 变量名=变量值

例:

  ~] #NAME=zhangsan

  ~] #echo $NAME

    zhangsan

  ~] #bash

  ~] #echo $NAME

  "输出为空"(因为切换shell环境了,而且变量没有指定为全局变量)

12、运算

例:

  ~] #A=11

  ~] #B=22

  ~] #C=$A+$B

  ~] #echo $C

    11+22

注:shell中输出的值,linux默认为字符串。

那个为了使运算得以进行,可以这样:

  expr [变量] [运算符]  [变量2]

  +加法  -减法  \*乘法(\是转意符,把*转意为乘)   /除法   %求模、取余

例:

  ~] #x=35

  ~] #y=16

  ~] #c=`expr $x + $y`  (注:+ 左侧和右侧必须有空格)

  ~] #echo $c

    51

    

时间: 2024-10-24 07:24:30

SHELL编程规范与变量的相关文章

理论:详细学习shell编程规范与变量————理论讲解 初学者一定要点进来

前言: shell脚本编程规范 shell脚本应用场景 shell编程规范 管道与重定向 shell脚本变量揭秘 自定义变量 特殊变量 本次学习了解的是变量 语言分为两大类 1.强语言:定义变量的时候需要声明数据类型,一旦声明,就不可变 jave c语言 1整型 init 1 2 3 100 长整型 long 2浮点型 单精度 float 4字节 双精度 double 8字节 带小数点就是浮点型 3.string 字符串 char 字符 英文字母字符 a 占一个字节 ? 中文汉字字符,男 占两个

Shell脚本编程规范与变量

主要内容 Shell脚本编程规范 Shell脚本应用场景 Shell编程规范 管道与重定向 Shell脚本变量 自定义变量 特殊变量 Shell脚本概述 Shell脚本的概念 将要执行的命令按顺序保存到一个文本文件 给该文件可执行权限,便可运行 可结合各种Shell控制语句以完成更复杂的操作 Shell脚本应用场景 重复性操作 批量事务处理 自动化运维 服务运行状态监控 定时任务执行 编写第一个Shell脚本 1.编写脚本代码 使用vim文本编辑器,每行一条Linux命令, 按执行顺序依次编写:

shell编程概述以及变量

动态语言:解释型语言,是一种弱类型的语言,特性:边解释边执行.例如:PHP.SHELL.python.perl 弱:变量用时声明,甚至不区分类型. 强:变量在使用前,必须事先声明,甚至还需要初始化 bash:本身就是一个软件,脚本解释器. shell脚本是面向过程的. bash变量类型: 环境变量 本地变量(局部变量) 位置变量 特殊变量 本地变量: VARNAME=VALUE;作用域:整个bash进程 局部变量 local VARNAME=VALUE:作用域:为当前代码段 环境变量:作用域为当

shell编程中的变量

变量就是其值可以变化的量;从实质来说,变量名是指向一片用于存储数据的内存空间;变量有本地变量.环境变量之分;shell变量是一种弱类型的变量,在声明变量时并不需要指定其变量类型,默认均为字符型;也不需要遵循C语言中"先声明再使用"的规定,任何时候想用就用; 本地变量:    是指只在某个shell中生效的变量,对其他shell无效,而且会随着当前shell的结束而消失;    本地变量的作用域被限定在声明它们的shell中;    为了让子shell继承当前shell的变量,可以使用e

【Linux】shell编程之给变量赋值的五种方法

1.  Shell中的变量类型 Shell中的变量可以分为环境变量.位置变量.预定义的特殊变量以及用户自定义变量. <!--[if !supportLists]-->2.  <!--[endif]-->环境变量 Shell中的环境变量是一类Shell预定义变量,是用于设置系统运行环境的变量,环境变量由系统统一命名.部分系统变量的值由系统设定,部分环境变量的值可以由用户给定. 环境变量的名称由大写字母组成,常用的Shell环境变量如下所示: HOME: 用户主目录的全路径名,cd $

shell脚本之编程规范与变量

shell脚本概念 将要执行的命令按顺序保存到一个文本文件,给该文件一个可执行权限,便可运行. shell脚本的构成 1.脚本申明 脚本声明是指明用哪个解释器来解释 2.注释信息 注释信息是指明这个脚本的一些说明信息.就知道这个脚本时干什么用的了,这个信息不执行 3.可执行语句 进行执行的一些命令 执行shell脚本的方式 1.绝对路径 2.相对路径 3.sh 脚本路径 4.source 脚本路径 注意:其中,绝对路径与相对路径实行shell脚本时,该脚本文件必须要有可执行权限.Source脚本

(一)Linux Shell编程——简介、变量

1. Shell简介 1.1 Shell出现背景 Shell 既是一种脚本编程语言,也是一个连接内核和用户的软件. 对于图形界面,用户点击某个图标就能启动某个程序:对于命令行,用户输入某个程序的名字(可以看做一个命令)就能启动某个程序.这两者的基本过程都是类似的,都需要查找程序在硬盘上的安装位置,然后将它们加载到内存运行.然而,真正能够控制计算机硬件(CPU.内存.显示器等)的只有操作系统内核(Kernel),图形界面和命令行只是架设在用户和内核之间的一座桥梁. 由于安全.复杂.繁琐等原因,用户

shell脚本规范与变量运用

前言随着Linux系统在企业中应用的越来越多,服务器自动化管理也变得越来越重要.Linux服务器自动化维护工作中,除了计划任务的设置外,shell脚本的应用也是非常重要的一部分.什么是shell脚本Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的.但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令.shell脚本的应用场景:

Shell编程 之 环境变量配置文件

1. 环境变量配置文件简介 1.1 source 命令:source 配置文件  或  . 配置文件 修改配置文件后,必须注销重新登陆才能生效,使用source命令可以不用重新登录 1.2 环境变量配置文件: 主要定义对系统操作环境生效的系统默认环境变量,如PATH等 1.3 常用登陆时的环境变量: 2. 环境变量配置文件功能 2.1 /etc/profile的作用: - USER变量 - LOGNAME变量 - MAIL变量 - PATH变量 - HOSTNAME变量 - HISTSIZE变量