【Linux命令-shell】虚拟机中的变量——linux命令shell

目录

1、自定义变量

2、操作系统定义的变量

2.1环境变量

 2.2位置变量

2.3预定义变量

 3、变量扩展引用

3.1各种引号

3.2read命令定义变量

3.3全局或局部变量


1、自定义变量

自定义变量:以固定名存放有变化的值

定义格式:  变量名=变量值

取消定义的变量  unset 变量名

注:=两边不能有空格,不要用关键字做变量名,例如:ls,cd等

如果变量已存在,则会覆盖之前的变量值

变量名称有:字母/数字/下划线组成,不能以数字组成

调用语法格式: $变量名 或 ${变量名} 加上花括号是为了防止异常

例如:

定义: a=11     调用:echo $a

定义: x=centos   调用:echo $x  如果想要在x后加上其他内容  echo ${x}7.8  则会输出centos7.8

2、操作系统定义的变量

①环境变量(变量名通常大写,有操作系统维护)

②位置变量(bash内置 存储脚本执行的参数)

③预定义变量(bash内置 可以调用但不可以赋值或修改)

④自定义变量(用户自主设置)

2.1环境变量

存在于/etc/profile或~/.bash_profile ;env可以列出所有的环境变量

如:

PATH:命令搜索变量

PWD:当前路径

USER:当前用户名

UID:当前用户的ID号

HOME:当前用户的家目录

SHELL:用的什么shell

 2.2位置变量

使用$n表示,n表示数字序列号

例如:

$1,$2,$3·······$9,${10},${11} 注意1~9不需要写{},之后的都需要写{}

演示:创建一个vars.sh文件,在文件内写入

执行

2.3预定义变量

 用来保存脚本的执行信息

直接使用这些变量,不能直接为这些变量赋值

$0 当前所在的脚本名或进程

$$当前运行进程的PID号

$?命令执行后的返回状态,0正常,1或其他异常

$#已加载的位置变量的个数

$*所有位置变量的值

 3、变量扩展引用

3.1各种引号

双引号" "允许扩展(可以取变量的值),以$引用

单引号' '禁止扩展(不能取变量的值),$视为普通字符

反引号` `将命令执行输出结果作为变量值,$()与反引号等效

创建文件:

touch a b c   创建了三个文件

touch "a b c" 创建了一个文件 ,与touch 'a b c'等效

删除文件: rm -rf 文件名

 双引号和单引号输出结果的区别

 注:无特殊符号时,单引号、双引号作用是一样的。

3.2read命令定义变量

 read 命令定义变量

read从键盘读入变量值完成赋值 ,   read 变量名

格式:read [ -p "提示信息" ] 变量名

-p可选

-t可指定超时秒数

-s设置是否在终端显示输入的内容

 创建一个read.sh文件,写入如下的内容

注意:在Ubuntu中 echo "$pass" | passwd --stdin $name不能使用,目前还在找替换的命令,如果你用的其他的虚拟机可以试试哦

调用并输入用户名和密码

./read.sh

注意:read -p "请输入密码" pass 是一个明文输入,不安全,如果需要暗文输入请输入以下命令

read -s -p "请输入密码:" pass  或者 read -p "请输入密码" pass -s

read -t 3 iname 表示在3秒内赋值 而read iname是默认一直等

3.3全局或局部变量

 全局变量,在当前shell以及子shell环境均有效

局部变量,新定义的变量默认只有在当前shell环境中有效,无法在子shell环境中有效,无法在子shell环境中使用

x=11 局部变量

export y=22 全局变量

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值