Linu(shell编程规范与变量)

Shell是Linux系统的命令解释器,起到人机交互的桥梁作用,如bash是默认的Shell类型。脚本是一种编程语言,用于控制软件,以文本形式存储,按行执行。文章介绍了脚本的构成,包括开头、执行语句和注释,以及执行方式如sh、source和需赋权执行。此外,还讲解了重定向输出、输入,变量的定义、类型和范围,以及环境和位置变量。最后提到了变量运算和脚本中的自加自减运算符。
摘要由CSDN通过智能技术生成

什么是shell?

其主要作用为:

shell将人类的语言转换为计算机可识别的二进制语言;

之后交移至内核(CPU)处理;

再通过shell将处理好的二进制语言转化为人类可以识别的语言。

总结:shell在人类与计算机之间起到了翻译、解释的作用。

Linux系统中shell的种类

bash:Linux默认的shell

tsch:整合了csh的功能,并且提供比csh更强大的功能

csh:类似C语言的shell

nologin:其也是shell的一种

。。。。

查看当前系统中包含的默认shell:cat /etc/shells

什么是脚本?

脚本:扩展语言、动态语言,其也是一种编程语言;控制软件应用程序;

脚本都是以文本的方式保存,只在被调用时才会进行解释或编译。

脚本语言的特点:

按行执行;

执行文本当中的特定语言命令。

shell脚本的构成

一、开头:注明解释器。默认bash,可以不写。除此之外要特定注明

二、执行语句:其都是系统支持的命令格式,只要是系统能够执行的命令语句,其中包含第三方的命令

三、注释语句:以“#”开头,表示此行标注为注释,注释的代码不会被执行

脚本执行的三种方式

分为两大类:

(先写一个简单的脚本) 

无需赋权即可执行:

sh

source 

点命令,其是一个符号,是bash的内部的命令,系统自带的读取文件当中的可执行命令,然后加载到shell中,特点:不用重启,直接生效

需要赋权执行  -------------  chmod +x 、chmod 777

./~~.sh  ---------- 相对路径执行,使用前提:要在当前目录下

/~/~~.sh  -----------  绝对路径执行,从根目录出发

重定向的操作

重定向输出  --------  ">" 将指定的结果保存到指定文件中,特点:会覆盖原有内容

重定向输入  --------  "<" 从指定的文件中读取内容,例:passwd --stdin xxx < 123.txt(表示读取123.txt中的内容设置为用户xxx的密码)

重定向输出  --------  ">>" 在当前内容尾部追加内容,特点:不会覆盖原有的内容

重定向错误输出  --  "2>" 将错误信息保存到指定的文件中,特点:会覆盖文件原有的内容

重定向错误输出  --  "2>>"将错误信息保存到指定的文件中,特点:不会覆盖指定文件的原有内容

重定向混合输出  --  "&>"标准的信息和错误信息会一并保存到指定的文件中,特点:会覆盖指定文件原有内容

变量

变量需要有范围和类型  -----  用户指定变量(此变量为自定义变量)

自定义变量:指用户指定所需的参数

变量的类型:

int:整数类型        string:字符串类型        布尔类型:true、false        浮点类型:0.2、1.1  --  即小数类型

变量名:分为 固定名称、用户自定义名称、系统预设名称

自定义变量的特点:

1、切记不要用Linux系统的操作命令或者是系统命令来指定变量名

2、不要用中午定义变量名

3、不能用如*~&#等特殊符号作为变量名的开头,但除了"_"(下划线)

4、Linux系统的默认原则,最好使用指定变量名的英文名来指定

5、注释:目的 --  1.解释代码的用途;2.方便后续交接

怎么定义一个变量

定义一个变量名  =  一个变量值

变量名特点:区分大小写;

查看变量

单个变量  ----  echo $ 变量名 

多个变量  ----  deho $ ${变量名}${变量名}

创建只读变量

readonly 变量名

只读变量的特点:不能被修改,不能被删除(注:无论什么用户)

删除只读变量只能使用特殊命令  ----  urset 变量名

赋值时各种引号的作用

``  反撇号 ---  命令转换;将命令执行的结果,赋值给变量

‘ ’  单引号 ---  强引用;只会输出变量名,而不会输出变量值;只打印变量名

“ ” 双引号 ---  弱引用;会打印出变量的值

read 命令获取变量

-p:指定提示符  ---------   提示用户输入变量

语句:  read -p “提示内容” 变量名

 

 

默认情况下,新定义的变量只能在当前的shell中生效,也可以叫局部变量

也就是说,当在一个端口创建局部变量后,同时再开启另外一个端口,再新开的端口中,变量失效

export ---  声明全局变量

 所有新定义的变量都是临时的变量,永久变量需要声明在/etc/profile中

同理在   /用户名/bashrc_profile  、 /用户名/.bashrc  中也可以声明对单个用户的永久变量

环境变量

系统提前创建好的变量、或人工添加的变量

作用:用来设置用户的工作环境:如,设置系统行为,传递信息,控制程序的停止、运行

分类:

系统环境变量  ----  所有人都可见、都可用的变量;

查看系统环境变量: echo $PATH

用户环境变量  ----  只对当前用户开放、使用;

查看用户环境变量:echo $PWD

 

$USER ---- 用户名称

$HOME ---- 用户宿主目录

$LANG ---- 语言和字符集

$PWD ---- 当前所在工作目录

$PATH ---- 可执行程序的默认路径

位置变量

命令行参数;当脚本运行时,从外部传递变量值,从而让脚本运行,可以很具需要来进行处理

        $n:n 表示位置数字 --- 当n=1~9时可以直接用$n表示 、当n>9 时需要添加“{}”,如${11}

        $0:表示命令本身

执行后:

 

 预定义变量

编程语言或脚本编辑器自动完成,人工不能对其进行修改

特点:可自动设置,可自动更新;但只能由编程语言或脚本编辑器自动完成,人工不能修改

$* 、$@:表示命令或脚本需要处理的参数

$*:加双引号,把参数作为一个整体进行处理,不加双引号,则分别处理

$@:加或者不加双引号,都会把参数进行分别处理

$#:统计传递给脚本参数的个数 

$?:表示一条命令或者脚本执行后的返回码,返回0表示执行正确,返回任何非0值都表示执行错误

        返回的是上一次运行的,即最近的一次命令或者脚本执行的返回码(无需自行判断,机器自动按预先配置好的逻辑判断输出 -------- 不要你以为,要我(机器)以为)

 

变量的整数运算

注:仅限于整数

基本算法:加:+减:-乘:*除:/ 取余:%

计算方式:

i=$(($a+$b)) 、i=$((5+6))

 

 

expr : i=$(N + - / % n)     特殊:expr的乘法  ---  i=$(expr N \* n)

 

 

 i=$[$a+$b]

 

let i=$a*$b

 

自加自减运算符


i++   先对i进行赋值,然后在进行加运算(相当于 i=$(($i+1)) )

i--      先对i进行赋值,然后在进行减运算 (相当于 i=$(($i+1)) )

i+=1 相当于 i=$(($i+1))  

++i   先对i做加运算,结果在赋值给i     

--i    先对i进行做减运算,然后结果在赋值给i
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值