脚本变量简介

变量类型:字符型、数值型、真、假;事先确定数据的存放格式和长度;
变量存放在内存空间;
编译型语言,没有额外的处理逻辑,属于强类型语言;
脚本型语言,可以有解释器控制;所以,可以是弱类型语言;
强类型:变量在使用前,必须事先声明,甚至还需要初始化(给一个初始值,如果没给一个原始值,里面是随机数);
弱类型:变量用时声明,甚至不需要区分类型(默认为字符串);
变量赋值:VAR-NAME=VALUE; bash shell变量类型:
环境变量
本地变量(局部变量),局部变量不一定都是本地变量
位置变量
特殊变量(bash shell内置的;系统变量) 本地变量:VAR-NAME=VALUE;作用域为整个bash进程;
局部变量:local VAR-NAME=VALUE;作用域为当前代码段;
环境变量:export VAR-NAME=VALUE;作用域为当前shell进程及其子进程;
位置变量:$1(第一个位置变量)、$2(第二个位置变量)...
特殊变量:$?(保存上一个命令执行状态返回值);程序状态返回代码(0——255);0表示正确执行;1——255表示错误执行; 执行bash shell脚本,就相当于执行一个进程,如果进程关闭,则变量就无效了;
脚本在执行时,会启动一个当前shell的子shell进程;命令行中启动的脚本会继承当前shell环境变量;系统自动执行的脚本(非命令行启动)就需要自我定义需要的各环境变量; 变量引用:${VAR-NAME},当变量名不造成混淆时,括号可省略;
撤销变量:unset VAR-NAME(不要加$符号);
查看当前shell中的变量:set(包括环境变量和本地变量);
查看当前shell中的环境变量:export、printenv、env; 变量默认都属于字符串,要想使变量变成整数型变量需要使用:let VAR=number 往原有变量中添加新的数值:
[root@localhost ~]# ANIMALS=pig
[root@localhost ~]# echo $ANIMALS
pig
[root@localhost ~]# ANIMALS=$ANIMALS:goat
[root@localhost ~]# echo $ANIMALS
pig:goat 注意:
1、变量名称只能包含字母、数字和下划线,并且不能以数字开头
2、不能和系统中已有的环境变量重名
3、最好做到见名知意

脚本执行过程:

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

脚本中放的都是命令,并不是可执行的程序,不是对应的二进制符号,所以直接提交到内核执行的话,内核是理解不了脚本中的命令的,内核理解的是ELF格式;
ELF:可执行的、可链接的文件格式;linux内核只能识别ELF格式进行执行,写完的脚本是ascii,内核是执行不了的;
要想内核能够读懂脚本,需要内核开启脚本解释器,添加shebang机制;
在脚本中的第一行添加:#!/bin/bash 指定解释器的位置;
shebang:指定程序的魔数;
写完的脚本需要加执行权限才能执行,或者使用解释器执行:bash SCRIPT-NAME;脚本名需要以 .sh 为后缀;

小技巧

输出重定向:
>:输出覆盖重定向
>>:追加重定向
2>:错误重定向
2>>:错误追加重定向
&>:同时重定向
/dev/null:软件设备,数据黑洞,可以把命令的输出结果放到数据黑洞里面,不在屏幕上打印
执行脚本时,要想命令的执行结果不在屏幕上打印可以使用重定向配合数据黑洞:&>/dev/null

shell脚本编程之变量简介及脚本执行过程的更多相关文章

  1. Bash脚本编程之变量与多命令执行

    变量基础知识 程序由指令加数据所组成,而变量可以理解为数据来源的一种. 变量名可以理解为指向了某个内存空间的地址,对于变量的赋值可理解为向内存空间写入数据,对于变量的引用可理解为从内存空间读取数据. ...

  2. shell脚本编程(一) 变量、条件判断、循环

    目录   1. shell脚本编程   2. 运行 Shell 脚本有两种方法   3. 变量   4. 本地变量   5. 环境变量   6. 参数变量   7. 多行注释   8. if条件判断 ...

  3. 5-2 bash 脚本编程之一 变量、变量类型等

    1. bash变量类型 1. 环境变量 2. 本地变量(局部变量) 3. 位置变量 4. 特殊变量 2. 本地变量 VARNAME=VALUE, 整个bash进程 3. 环境变量 作用域为当前shel ...

  4. bash脚本编程之一 变量、变量类型等

    变量的内容 1.变量命名:            1.只能包含字母.数字和下划线,并且不能以数字开头,    2.不应该跟系统中已有的环境变量重名    3.最好能见名知意 2.变量赋值: 设置变量: ...

  5. 《鸟哥的Linux私房菜》学习笔记(8)——bash脚本编程之变量

    一.变量命名                                                             1.只能包含字母.数字和下划线,并且不能以数字开头,    2.不 ...

  6. Loadrunner脚本编程(2)-VuGen脚本文件的开发过程

    http://www.360doc.com/content/10/0806/13/1698198_44076570.shtml 1.定义测试项目的目标,环境,脚本,测试数据,硬件等.脚本应该符合编码规 ...

  7. struts2学习(5)拦截器简介以及例子执行过程

    一.拦截器简介: 二.Struts2预定义拦截器&拦截器栈 在执行action之前和之后,拦截器进行了操作: 比如struts-default.xml中就有很多预定义的拦截器:   拦截器栈: ...

  8. shell脚本编程之变量的小用法

    变量赋值 ${parameter:-word}:如果parameter为空或未定义,则变量展开为"word":否则,展开为parameter的值: ${parameter:+wor ...

  9. Linux Shell 高级编程技巧3----运行级别脚本介绍

    3.运行级别脚本介绍    3.1.运行级别        运行级别介绍:            0    关机            1    单用户模式            2    多用户模式 ...

随机推荐

  1. lombok使用教程

    Lombok介绍.使用方法和总结https://www.cnblogs.com/heyonggang/p/8638374.html Lombok简介.使用.工作原理.优缺点https://www.ji ...

  2. c# 操作xml文件(读写)

    根据项目需求,我们需要记录用户的操作痕迹,当用户下次登录操作同一个文件时,页面显示为用户上一次执行的用户轨迹,我们考虑把用户的历史记录写进xml文件中. 存储的xml数据结构: XML操作类: usi ...

  3. 最简单 无返回值 无参数 sql server存储过程

    CREATE proc Upadte_stateas update Table_1 set [state]=2 where id in (select id from Table_1 where st ...

  4. 10 查询字符串,X字段必须包含(不包含)XX;_all原理

    指定某个字段,必须要包含XX字符 GET /beauties/my/_search?q=Name:Chang Wei   搜出 某个字段不包含XX字符 的所有内容 GET /beauties/my/_ ...

  5. 【转载】关于SimpleDateFormat安全的时间格式化线程安全问题

    想必大家对SimpleDateFormat并不陌生.SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调 ...

  6. Vivado debug异常现象

    前言 bit文件和ltx文件的信号位宽不匹配问题.用了dont_touch等属性没用... WARNING: [Labtools 27-1972] Mismatch between the desig ...

  7. layui.js---layer;;前端预览pdf

    layui.js---layer;;前端预览pdf 1.必须引入layui.js 2.uul是pdf文件地址 3.触发function函数:小于号button onclick="pdfsee ...

  8. http状态码记录

    一些常见的状态码为: 200 - 服务器成功返回网页404 - 请求的网页不存在503 - 服务不可用详细分解: 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码. 代码 说明100 ...

  9. 学习python的日常

    今天是开始正式接触python语言的第一天,然后来自前辈的知道开始了在学习过程当中用博客来记录自己的学习历程,以供自己更快地掌握这门编程语言. 大概的总结一下的话,还是按照我的编程的习惯,要学写代码, ...

  10. spice在桌面虚拟化中的应用系列之二(Linux平台spice客户端的编译安装,支持USB映射)

    1.系统环境 1.1 测试环境 centos6.4最小化安装(centos6.x桌面版也适用) 使用yum源为163源加EPEL源 1.2 spice客户端介绍 spice作为远程连接工具,可以支持远 ...