shell脚本编程之变量简介及脚本执行过程

脚本变量简介

变量类型:字符型、数值型、真、假;事先确定数据的存放格式和长度;
变量存放在内存空间;
编译型语言,没有额外的处理逻辑,属于强类型语言;
脚本型语言,可以有解释器控制;所以,可以是弱类型语言;
强类型:变量在使用前,必须事先声明,甚至还需要初始化(给一个初始值,如果没给一个原始值,里面是随机数);
弱类型:变量用时声明,甚至不需要区分类型(默认为字符串);
变量赋值: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;

往原有变量中添加新的数值:
[[email protected] ~]# ANIMALS=pig
[[email protected] ~]# echo $ANIMALS
pig
[[email protected] ~]# ANIMALS=$ANIMALS:goat
[[email protected] ~]# 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

原文地址:https://www.cnblogs.com/dongzhanyi123/p/11982127.html

时间: 2024-10-11 00:02:24

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

bash脚本编程之变量、变量类型、条件测试、算术运算、及特殊变量

一.学习目的 1.了解bash脚本的变量类型及变量的使用 2.了解bash中条件测试的种类及如何在bash中实现条件的判断 3.学会在bash中做算术运算 4.了解特殊变量的使用 二.学习内容 1). ①.bash的变量类型: 环境变量 .本地变量.局部变量.位置变量.特殊变量 环境变量: export VALUENAME = VALUE 作用领域是当前的shell进程及其子进程 本地变量: VALUENAME= VALUE 作用领域为整个bash的进程 局部变量:local VALUENAME

Linux学习笔记--bash脚本编程之一变量、变量类型

bash脚本编程之一变量.变量类型 shell编程: 编译器,解释器 编程语言:机器语言.汇编语言.高级语言 静态语言:编译型语言 强类型(变量)语言 事先转换成可执行格式 C.C++.JAVA.C# 动态语言:解释型语言       on the fiy                                   弱类型 边解释边执行 ASP.ASP.net.PHP.shell.Python.perl 面向过程:shell.C   面向对象:JAVA.Python .Perl.C++

shell脚本介绍,shell脚本结构和执行方式,date命令的用法,shell脚本中的变量简介

笔记内容: 20.1 shell脚本介绍 20.2 shell脚本结构和执行 20.3 date命令用法 20.4 shell脚本中的变量 笔记日期:2017-11-21 20.1 shell脚本介绍 Shell Script,Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的.但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令

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

shell编程: shell:弱类型编程语言 强:变量在使用前,必须事先声明,甚至还需要初始 弱:变量用时声明,甚至不区分类型 bash变量类型: 环境变量 本地变量 位置变量 特殊变量 本地变量: VARNAME=VALUE:作用域为整个bash进程: 局部变量: local VARNAME=VALUE:作用域为当前代码段: 环境变量:作用域为当前shell进程及其子进程 export VARNAME=VALUE 位置变量: $1,$2,.... 特殊变量: $?:上一个命令的执行状态返回值:

【Linux学习 009】脚本编程之变量和条件判断

一.Bash环境变量 bash中变量有四种种类型:环境变量.本地变量(局部变量).位置变量.特殊变量. 1.环境变量 环境变量作用范围最广,所有子bash进程都能够访问环境变量中的值,定义环境变量的方法是使用export关键字.举例: [email protected]:~$ export A=abc [email protected]:~$ echo $A abc [email protected]:~$ 2.本地变量 本地变量作用范围是当前bash,子bash访问不到父bash中定义的变量,

第五课-第二讲05_02_bash脚本编程之一 变量、变量类型等

grep 搜索结果是浪费和占用大量的CPU资源fgrep : fast grep 不支持正则表达式,所以速度快 1.shell脚本编程编译器,解释器 编程语言:机器语言(01代码)汇编语言(机器可以识别人不可以)高级语言(接近人类的思考特性,但不是人类的自然语言,也不是机器语言.所以需要编译器)静态语言(编译型语言,需要编译器编译在执行前全部转换成可用执行格式,强变量类型语言.如 C C++ java)动态语言(解释型语言,通常是弱类型语言,需要解释器,解释器本身是静态语言开发的.执行时在转换,

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

一.变量命名                                                             1.只能包含字母.数字和下划线,并且不能以数字开头,    2.不应该跟系统中已有的环境变量重名    3.命名要有含义 二.变量赋值                                                            变量名称=值var_name=value 等号两边不能有空格 [[email protected] ~]# NA

Linux基础之bash脚本编程初级-变量

什么是变量? 变量最初来源于数学,指的是非固定的值可变化的数通常用拉丁字母表示.在计算机中变量它依旧指的是可变化的数,只不过表现形式有些变化.它指的是变量名+所指向的内存空间. 以下实验环境均在CentOS7.2进行 变量的特点 变量分强类型变量,与弱类型变量 强类型变量:变量需事先声明且需提前定义其变量存储格式 弱类型变量:不需事先声明,不需定义变量存储格式. bash把所有变量统统视作字符型:bash中的变量无需事先声明,相当于,把声明和赋值过程同时实现. 变量名的命名规范: 变量名只能包含

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

http://www.360doc.com/content/10/0806/13/1698198_44076570.shtml 1.定义测试项目的目标,环境,脚本,测试数据,硬件等.脚本应该符合编码规范或编码习惯. 2.创建一个版本文件夹来保存被测应用程序相关的各种不同资源,例如截获的.png/.gif图形文件,录制过程保存的html文件,录制中的所有html源文件和VuGen的录制日志. 3.列出(在表里)每一个手动操作业务过程需要的实际步骤 1)截取每一个屏幕图像(screen image