Shell第一章Shell编程规范与变量

文章介绍了Linux系统中的shell,包括bash等不同类型的shell,以及shell脚本的构成和执行方式。重点讲述了重定向操作、变量的定义和类型,包括局部变量、全局变量、环境变量,以及整数运算。还提及了预定义变量和bc计算器在计算中的使用。
摘要由CSDN通过智能技术生成

shell

shell的定义:

把人类的语言转换成计算机的二进制,计算机内核处理,二进制转换成人类能识别的语言。(shell在人与计算机的中间,充当解释器)

Linux系统中shell的种类

1,bash :Linux系统中默认的shell

2,tcsh :整合了csh的功能,可以提供比csh更强大的功能

3,csh :类似c语言的shell

4,nologin :禁止用户登录

cat /etc/shells :查看系统中默认的shell
除非指定,系统默认的shell都是bash'

脚本的定义:

扩建语言,动态语言,也是一种编程语言,控制软件应用程序,脚本都是以文本的形式保存,只在调用时才会进行解释或者编译,按行执行,执行文本当中的特定命令

shell脚本的构成

1,开头,注明解释器,#!/usr/bin/python

2,执行语言,都是系统支持的命令格式,只要系统能够执行的语句(包含第三方的扩展命令),都可以作为执行语句

3,注释语句,#号键作为注释,注释的代码,不会被执行

默认的脚本格式名称:xxx.sh

shell脚本执行的三种方式:

不需要赋予执行权限就可以直接执行

1,sh:只在子shell中执行

2,source:点命令,也就是一个符号. sh是bash的内部命令,自带的,读取文件当中的可执行命令,会加载到shell中,不用重启,直接生效

3,赋权执行: chmod +x
chmod 777
./ :相对路径执行, .表示当前目录
/ :绝对路径执行
无论相对还是绝对,都必须要有执行权限,这是生产当中的主要执行方式。

工作当中都是赋权执行,sh和source只限于调试阶段

crontab -e :定时

重定向与管道操作

重定向操作:

重定向输出:> ,把指定结果保存到文件中,覆盖原有的内同

重定向输入:< ,从指定文件当中获取数据,免交互

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

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

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

混合输出:&>标准和错误都保存到文件当中,会覆盖原有的内容

shell变量的作用和类型

变量:可以改变,有类型和范围

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

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

变量的类型:

1,int 整数

2,string 字符串

3,true false 布尔类型

4,1.12c 0.23 浮点类型

变量名:固定名称,用户自定义,系统预设

1,不要使用Linux系统的操作命令,或者系统命令来指定变量名

2,不要用中文指定变量名

3,不能使用特殊符号开头,可以用_开头

4,默认原则:最好使用名称的英文来指定变量名

5,注释,注释的目的 1,解释一下你的代码用途,2,离职之后后面人好交接

怎么定义变量:

变量名=变量值

变量名区分大小写的

查看变量的值

echo $aa

echo ${AA}${aa}

.

只读变量:readonly

1,只读变量被不能重新复制

2,只读变量不能删除

删除变量:unset

赋值的时候,引号的作用,只有打印的时候有用

1,`` :反撇号,命令替换,把执行命令的结果,赋值给变量。

a=`ps aux | gerp root`` 命令替换

2,'' :单引号,强引用,用单引号打印变量,只会输出变量名 ,不会输出变量值,只会打印变量的名称

echo '$a'

3,” ” : 双引号 ,弱引用,打印变量的赋值。

read命令来过去变量:

-p :指定提示符,提示用户的

""必须要有,且后面要有空格

变量的作用范围:

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

全局变量:在程序和脚本中,以及全部的shell环境中,都可以被应用

生效全局变量的方式:

export :查看当前系统中所有的全局变量

export a=100

export b=200

工作中不常用全局,因为一旦有重名,非常麻烦,可能导致未知的不确定性,难以调试

export 临时生效,只能当前的shell中,重启失效

vim /etc/profile

/root/.bashrc_profile

/root/.bashrc 只能对root用户生效

环境变量:

系统h之前提前创建好的,或者人工添加的,用来设置用户的工作环境,配置系统行为,传递信息,控制程序执行

系统环境变量:所有人都可见的,都可用

echo $PATH :所有的系统环境变量

用户级环境变量:只能对当前客户使用

echo $HOME :看所有用级

$USER :表示用户的名称

$HOME:用户的宿主目录

$PWD:表示当前所在的目录

$PATH:可执行程序

位置变量:命令行参数

脚本运行时,从外部传递变量值,让脚本来运行,可以根据需要来进行处理

$n :n表示1.2.3.4.5.6.7.8.9 ${10},10以上的参数要用花括号来表示

${11}

sh weizhi.sh 10 20

$0对应命令本身

$1 $2从左往右依次进行赋值,要在脚本执行时,在外部传入变量值

预定义变量:

编程语言或者脚本解释器提供,可以自动设置,自动更新,但是编程语言和脚本解释器自动完成,人工不能修改

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

$* :加引号时(用双引号),会把参数当成一个整体处理,不加引号,会把参数分别处理

$@ :加不加引号都会把参数分开处理

$* $@z :在不加引号时,都会把参数分开处理

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

$? :表示一条命令或者脚本执行后的返回码,返回码为0,表示执行正确,所有非0的返回码,都表示执行错误。(只能返回上一次,最近的一次命令或者脚本执行的返回码)

 

 

整数运算:

i=$(12+15)

i=$(expr12*5)

%:取余

expr

let i=12*5

i=$[125] let i=125 i=$((12+15))

i++ i=$(($i+1)) 先赋值,再加 i=1 i=1+1 i=2+1 每次自加1 i-- 每次自减1 先赋值再减 i+=2 每次自加2 先赋值,再加2 ++i 先加再赋值,自加1 --i 先减再赋值,自减1

bc简易计算器:

也可以支持运算,整数小数都可以

课后实验,位置变量1~11

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值