Shell编程--变量

2020-05-22  本文已影响0人  Amy1234567

Shell与其他语言的对比

1. php和java主要实现功能

(Shell,所见即所得。直接能看见结果,编译过程放在执行行过程中,所以要比java,c慢)

2. Shell简化管理操作

Bash变量

1. 变量命名规则:

1)变量名必须以字母或下划线开头,名字中间只能由字母,数字和下划线组成

2)变量名的长度不得超过255个字符

3)变量名在有效的范围内必须是唯一的

4)在Bash中,变量的默认类型都是字符串型

在任何系统中,目录名,文件名,变量名都要有含义

变量的值,如果有空格,需要用单引号或者双引号括起来

2. 变量按照存储类型分类

1)字符串型

2)整形

3)浮点型

4)日期型

3. 变量的分类

1)用户自定义变量。变量自定义的

2)环境变量:这种变量中主要保存的是和系统操作环境相关的数据。变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的。

3)位置参数变量:这种变量主要是用来向脚本中传递参数和数据的,变量名不能自定义,变量作用是固定的

4)预定义变量:是bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的

4. 用户自定义变量

变量名=变量值

=前后不能有空格

实例

变量的调用 $变量名

实例

变量叠加: 

x=123

x="$x"456

x=${x}789

实例

变量查看:

set: 查询系统下所有已经生效的变量,包括环境变量和用户自定义变量

set

选项:-u:如果设定此选项,调用未声明变量时会报错(默认无任何提示)

实例

变量删除:unset

例: unset x

声明静态变量:readonly 变量  (注意:不能unset)

5. 环境变量

环境变量和用户自定义变量的区别:

环境变量是全局变量,用户自定义变量是局部变量。用户自定义变量只在当前的Shell中生效,环境变量在当前Shell和这个Shell的所有子Shell中生效

变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的

命令:pstree 查看进程树

可以查看到当前Shell,父Shell, 子Shell

实例

设置环境变量

imooc

实例:

实例

查看环境变量

1)set  #查看所有变量

2)env #查看环境变量

删除环境变量: unset 变量名

常用环境变量

imooc

PATH环境变量

PATH变量: 系统查找命令的路径

echo $PATH  #查看PATH环境变量

PATH = "$PATH":/root/sh  #增加PATH变量的值

实例

PS1环境变量

定义了当前操作系统的提示符

实例 imooc 实例

当前语系查询

locale  #查询当前语系

- LANG : 定义系统主语系的变量

- LC_ALL :定义整体语系的变量

实例

语系变量LANG

echo $LANG  #查看系统当前语系

locale -a | more  #查看Linux支持的所有语系

查询系统默认语系:cat  /etc/sysconfig/i18n ???

Linux中文支持

前提条件,正确安装的中文字体和中文语系

1) 如果有图形界面,可以正确支持中文显示。

2) 如果使用第三方远程工具,只要语系设定正确,可以支持中文显示。

3) 如果使用纯字符界面,必须使用第三方插件(如zhcon等)。

6. 位置参数变量

imooc

$n主要的作用是向脚本中传递值

hello.sh 文本内容

实例

执行hello.sh,并传递参数

实例

注意:$0为命令名,即,文件名

imooc 实例

$*和$@的区别:

imooc

$*把所有参数看成一个整体,$@会区分对待

实例

7. 预定义变量

imooc 实例

$$: 返回当前进程的PID

实例

$$写在脚本里,输出脚本运行时的PID

实例

$!: 后台运行的最后一个进程PID

实例

将后台进程写入脚本后执行

实例

接受键盘输入

read [选项] [变量名]

选项:

-p  “提示信息”: 在等待read输入时,输出提示信息

-t  “秒数”:read命令会一直等待用户,使用此选项可以指定等待时间

-n “字符数”: read命令只接受指定的字符数,就会执行

-s : 隐藏输入的数据,适用于机密信息的输入

实例 实例
上一篇下一篇

猜你喜欢

热点阅读