首页 > 代码库 > shell编程概述以及变量

shell编程概述以及变量

动态语言:解释型语言,是一种弱类型的语言,特性:边解释边执行。例如:PHP、SHELL、python、perl

弱:变量用时声明,甚至不区分类型。

强:变量在使用前,必须事先声明,甚至还需要初始化

bash:本身就是一个软件,脚本解释器。

 shell脚本是面向过程的。

 

bash变量类型:

  环境变量

  本地变量(局部变量)

  位置变量

  特殊变量

 

本地变量:

VARNAME=VALUE;作用域:整个bash进程

局部变量

local VARNAME=VALUE;作用域:为当前代码段

环境变量:作用域为当前shell进程及其子进程;

①export VARNAME=VALUE

②VARNAME=VALUE

 export VARNAME

位置变量:

  $1,$2,...

特殊变量:

$7:上一个命令的执行状态返回值

 

程序执行,可能有两类返回值:

  程序执行结果

  程序状态返回代码(0-255)

    0:正确执行

    1-255:错误执行     1,2,127系统预留

echo $? 查看上一条命令执行的状态

引用变量:$(VARNAME),括号有时可省略

脚本在执行时会启动一个子shell进程,命令行中启动的脚本会继承当前shell环境变量,系统自动执行的脚本(非命令行启动)就需要自我定义需要各环境变量

输出重定向:

> 覆盖重定向

>>追加重定向

2>错误重定向

2>>错误追加重定向

&>同时重定向

撤销变量:unset VARNAME  撤销环境变量、本地变量

查看当前shell中变量:包括环境变量、本地变量

set

查看当前shell中的环境变量:

printenv

env

export

在一个变量中添加新的东西:

NAME=xiao

NAME=$NAME:/liu   后补

NAME=tian:$NAME   前补

 

注意:所有的shell变量都是字符串,不可以进行算术运算

 

脚本:命令的堆砌,按实际需要,结合命令流程控制机制实现的源程序

第一个脚本:

脚本开头第一行必须写:

#!/bin/bash

#注释行,不执行

一般的写出的脚本没有执行权限:chmod +x filename

但是有两种方式执行:

  ①在PATH路径下加上文件的路径名

  ②只在当前路径下执行 ./filename

去掉执行权限:chmod -x filename

指定bash解释器执行 bash filename

 

shell编程概述以及变量