一、用户自定义变量
name=poku//两边不能有空格
echo $name //输出变量
//变量叠加两种方式
name="$name"+hello
echo $name//pokuhello
name=${name}+hello
echo $name//pokuhello
set 命令
//查看所有生成的变量,包括系统变量
set -u //查看 当变量是否为空·
echo $a //如果$a 为空变量,那就报出空变量信息
unset + 名字(不加$)//删除变量
二、环境变量
环境变量是全局变量:在当前Shell和这个Shell的所有子Shell中生效
用户自定义变量是局部变量:只在当前的Shell中生效
pstree 查看进程树
对系统生效的环境变量名和变量作用是固定的
设置环境变量
export 变量名=变量值
或 变量名=变量值
export 变量名
set查看所有变量 unset 变量名 删除变量
env查看环境变量
PATH 系统搜索命令路径
PS1 定义当前操作系统的提示符
PS2 等待输入提示符
常用环境变量
- HOSTNAME:主机名
- SHELL:当前的shell
- TERM:终端环境
- HISTSIZE:历时命令条数
- SSH_CLIENT:当前操作环境是用ssh连接的,这里记录客户端ip
- SSH_TTY:ssh连接的终端时pts/1
- USER:当前登录的用
环境变量中的bash语系变量
locale #查询当前系统语系
#演示:
[root@localhost ~]# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
[root@localhost ~]#
----------
#或者直接查看LANG变量,查看系统主语系
#演示:
[root@localhost ~]# echo $LANG
zh_CN.UTF-8
[root@localhost ~]#
LANG #定义系统主语系的变量
LC_ALL #定义整体语系的变量
----------
locale -a | more #查看Linux支持的所有语系
#演示:
[root@localhost ~]# locale -a
aa_DJ
aa_DJ.iso88591
aa_DJ.utf8
aa_ER
aa_ER@saaho
aa_ER.utf8
[root@localhost ~]#
----------
cat /etc/sysconfig/i18n #查看默认语系 下次开机后进入的环境
#演示:
[root@localhost ~]# cat /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
[root@localhost ~]#
三、位置参数变量
# $n n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参#数需要用大括号包含,如${10}
# $* 这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
# $@ 这个变量也代表命令行中所有参数,不过$@把每个参数区分对待
# $# 这个变量代表命令行所有参数的个数
[root@localhost ~]# ls #列出目录下的文件
abc bols install.log japan test3.sh tmp anaconda-ks.cfg cangls install.log.syslog test2.sh test.sh
[root@localhost ~]# mkdir sh #创建sh目录
[root@localhost ~]# ls
abc cangls japan test3.sh
anaconda-ks.cfg install.log sh test.sh
bols install.log.syslog test2.sh tmp
[root@localhost ~]# cd sh/ #切换到sh工作目录
[root@localhost sh]# ls
[root@localhost sh]# touch canshu1.sh #创建一个空文件canshu1.sh
[root@localhost sh]# ls
canshu1.sh
[root@localhost sh]# vim canshu1.sh #用vim编辑器打开canshu1.sh文件
#进入canshu1.sh文件
#!/bin/bash
num1=$1
num2=$2
sum=$(($num1 + $num2))
echo sum
~
~
~
~
#结束文件编辑
[root@localhost sh]# chmod 755 canshu1.sh #赋予文件可执行权限
[root@localhost sh]# ./canshu1.sh 6 7 #执行文件 并传递两个参数 6 7 $1表示第一个参数 $2表示第二个参数 $0 表示./canshu1.sh
13 #执行结果
[root@localhost sh]#