Shell脚本笔记概念和变量

Posted shadowplay

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell脚本笔记概念和变量相关的知识,希望对你有一定的参考价值。

概念和变量

一、认识Shell脚本

Shell是一种命令解释器,作用是按次序执行(遇到子脚本,先执行子脚本的命令)用户输入的命令和程序。

Shell脚本语言是弱类型语言,与其他脚本语言相比的优势是可以处理偏操作系统底层的业务。

查看系统默认Shell:

#方法一:
echo $SHELL
#方法二:
grep root /etc/passwd

开发规范:

1)脚本第一行指定解释器

#!/bin/bash  

2)开头添加版本、版权等信息

3)脚本中尽量不要用中文

4)扩展名为.sh

5)脚本应放在固定路径下

执行方法:

1)bash script-name或者sh script-name: 脚本没有x权限或者脚本开头没有指定解释器时,可用此方法,此方法也是常见的方法。

2)path/script-name:当前路径下执行脚本,脚本要有x权限。

3)source script-name 或者 . script-name:在当前shell中直接运行脚本(其他方式会开启新的shell),因此可将该脚本中的变量或者函数传递到当前shell中。

二、Shell变量

shell变量不区分类型,如果要指定变量类型也可用declare定义。

一)环境变量

1)所有环境变量都是系统全局变量,可以用于所有子进程中。

2)环境变量用export导出,但如果不写入指定配置文件(~/.bash_profile,~/.bash,/etc/bashrc,/etc/profile),退出命令行会丢失。

3)环境变量应使用大写。

显示环境变量:

set:输出所有变量,包括全局变量、局部变量。

env:显示环境变量。

declare:所有变量,函数,整数等。

set -o:所有参数配置信息。

unset消除本地变量和环境变量:

unset JAVA_HOME

系统环境文件读取流程:

1.通过系统用户登录时的流程:

技术分享图片

2.非登录Shell

 只会加载~/.bashrc或者/etc/bashrc

 二)普通变量

定义本地变量

1 var_name1=12345                           #为连续内容无需解析其他变量时可不用引号
2 var_name2=Do you have time.             #用单引号,原样输出
3 var_name3="No, I‘m working."              #会对其中变量进行解析,其他同单引号
4 var_name4=`ls -alh`                       #获取命令结果
5 var_name5=$(ls -l)                        #同上

三)特殊位置参数变量

常用特殊位置参数说明:

技术分享图片

进程中的特殊状态变量:

技术分享图片

用法:

1)判断命令、脚本和函数是否执行成功

2)执行" exit 数字 " ,会返回数字给$?

3)在函数中" return 数字 ",效果同上

四)bash shell系统内置变量命令:

1)echo:在屏幕上输出变量  命令格式 echo args  其中arges可以是变量和字符串组合

2)eval: 

命令格式:eval args

功能:当shell程序执行到eval语句时,shell读入参数args,并将它们组合成一个新的命令。

3)exec:

命令格式: exec 命令参数

功能:在不创建新的子进程前提下,转去执行指定的命令,指定命令执行完毕后,终结该进程。

4)read:

命令格式: read  [参数] [变量名](该变量不能为特殊变量)
功能:从标准输入读取字符串等信息,传给shell内部定义的变量。

1 read -t 10 -p Pls input the num:  num

5)shilft:

命令格式:shilft—Shilft positional parameters

功能:在程序中每使用一次shilft语句,都会使所有位置参数向左移动一个位置。

6)exit:

退出shell,可选定一个数字作为返回值。

 五)变量子串

 技术分享图片

技术分享图片

六)特殊扩展变量

技术分享图片

三、变量的数值计算

一)算术运算符

**:幂运算       其他略

二)算术运算命令

技术分享图片

技术分享图片


以上是关于Shell脚本笔记概念和变量的主要内容,如果未能解决你的问题,请参考以下文章

Shell脚本笔记Shell变量

不说了 写脚本去了... shell脚本编写规范和相关变量类型

shell脚本编程学习笔记

代码片段:Shell脚本实现重复执行和多进程

shell编程概念介绍及变量定义--关于脚本运行与shell进程之间的关系

Linux bash基础特性二