shell变量

一.shell介绍

shell是一个命令解释器,它位于用户和内核之间,将用户输入的指令解释给内核执行;/bin/bash和/bin/sh是最常用的解释器

二.变量的命令规则

1.只能包含数字,字母,下划线

2.数字不能开头

3.区分大小写

三.变量的定义

第一种方式

变量名=变量值,注意等号等号=两边不能有空格,否则shell会将变量名当初命令执行而报"command not found"的错误

[root@localhost mysql]# name=xiaoming
[root@localhost mysql]# echo $name
xiaoming
[root@localhost mysql]# name = hehe
-bash: name: command not found

第二种方式

通过read交互让用户输入并付赋值给一个变量名

read命令的常用选项:

-p "提示信息" 提示信息,可以用来提示用户需要输入什么信息

-s 隐藏用户的输入内容,比如输入密码时可以隐藏

-t n n秒后会自动回车,所以用户需要在n秒内输入完成

-n num 用户最多可以输入num个字符

第三种方式

变量名=$(命令)或变量名=`命令`,将命令的执行结果赋值给变量

四.变量的类型

局部变量:只在当前终端有效,就是直接在命令行上定义

环境变量:export 变量名=变量值;只在当前进程及其子进程有效

全局环境变量:在/etc/profile配置文件中最后加上export 变量名=变量值,保存后退出,使用source /etc/profile使配置有效

系统变量:

$0 当前的进程名

$1,$2.. 传给脚本的参数顺序

$$ 当前的进程ID

$!当前系统运行的最后一个进程的进程ID号

$? 上一条命令的运行结果,0表示执行成功,非0表示执行失败

$# 参数的个数

$@/$* 所有的参数值

$*是以"$1 $2 … $n"的形式输出所有参数

$@是以"$1" "$2" … "$n" 的形式输出所有参数

系统变量可以在shell脚本中直接使用

五.变量的取消

unset 变量名

原文地址:https://www.cnblogs.com/golinux/p/10830249.html