什么是变量

image.png

定义/赋值变量

•基本格式
-变量名=变量值
•相关注意事项
-若指定的变量名已存在,相当于为此变量重新赋值
-等号两边不要有空格
-变量名由字母/数字/下划线组成,区分大小写
-变量名不能以数字开头,不要使用关键字和特殊字符
[root@svr5~]# X=12 //1定义变量X,并赋值12
[root@svr5~]# var1=Centos //定义变量var1,并赋值Centos

查看/引用变量

•基本格式
-引用变量值:变量名查看变量值:echo变量名 -查看变量值:echo变量名、echo ${变量名}
[root@svr5~]# echo $X
12
[root@svr5~]# echo $var1
Centos
[root@svr5~]#echo $var18.5 //未定义的变量无取值
.5
[root@svr5~]# echo ${var1}8.5 //变量名易混淆时,以{界定
CentOS8.5

取消变量

•自定义变量的失效
-退出定义变量的Shell环境时,变量会自动失效
-在环境内也可手动取消:unset变量名…
[root@svr5~]# unset X
[root@svr5~]# echo $X
空的没有取值
[root@svr5 ~]#

shell变量的分类角度

image.png

环境变量

•配置文件
-/etc/profile(在这个里面设置的变量针对所有用户都起作用)
~/.bash_profile(隐藏文件只对当前用户起作用)
•相关操作

  • env:列出所有的环境变量

  • set:列出所有变量
    •常见的环境变量

  • PWD、PATH、USER、LOGNAME、UID
    -SHELL、HOME、PS1、PS2、.……
    -SHELL(它是用来保存我们当前用户它的登录解释器)HOME(保存用户的家目录)PS1和PS2(保存的是我们在命令行里面的提示符)
    [root@svr5~]# echo $PS1 //决定命令行提示串 [u@\h\W]$

    ----注意$后面有一个空格!如果没有空格的话,将会报错!

    \d :代表日期,格式为weekday month date,例如:“Mon Aug 1”

\H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux

\h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略

\t :显示时间为24小时格式,如:HH:MM:SS

\T :显示时间为12小时格式

\A :显示时间为24小时格式:HH:MM

\u :当前用户的账号名称

\v :BASH的版本信息

\w :完整的工作目录名称。家目录会以 ~代替

\W :利用basename取得工作目录名称,所以只会列出最后一个目录

# :下达的第几个命令

$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$

位置变量

•在执行脚本时提供的命令行参数
-表示为$n,n为序号
-$1、$2.、… 10{10}、[11}、……
[root@svr5~]# cat /root/a.sh
#!/bin/bash
echo$1 ${10} //查看第1、10个位置参数
[root@svr5~#/root/a.sh 1 2 3 4 5 6 7 8 9 10 11
1 10
image.png

image.png
在脚本里面写入
useradd $1 2> /du/gxq
echo “1” | passwd --stdin $1 &> /dev/null
在命令行输入脚本绝对路径空格加上你要创建用户的名字就会创建完成并且给用户设置密码