前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >shell编程02【基本语法-变量】

shell编程02【基本语法-变量】

作者头像
用户4919348
发布2019-04-02 10:23:24
4880
发布2019-04-02 10:23:24
举报
文章被收录于专栏:波波烤鸭

shell变量

1.系统变量

  常用的系统变量

序号

命令

1

$HOME

查看当前用户的根目录

2

$PWD

查看当前路径,等价于pwd

3

$SHELL

查看系统shell的解释器类型

4

$USER

当前登录用户

env:显示用户的环境变量

在这里插入图片描述
在这里插入图片描述

2.自定义变量

2.1定义规则

代码语言:javascript
复制
变量名称=值

注意:

  1. 等号两侧不能有空格
  2. 变量名称一般习惯大写

2.2变量使用

普通使用

代码语言:javascript
复制
[root@hadoop-node01 ~]# address=深圳
[root@hadoop-node01 ~]# echo $address
深圳

单引号使用

代码语言:javascript
复制
[root@hadoop-node01 ~]# username1='波波烤鸭'
[root@hadoop-node01 ~]# echo $username1
波波烤鸭
代码语言:javascript
复制
# 单引号有脱意的作用
[root@hadoop-node01 ~]# username2='波波烤鸭$address'
[root@hadoop-node01 ~]# echo $username2
波波烤鸭$address

双引号的使用

代码语言:javascript
复制
[root@hadoop-node01 ~]# username2="波波烤鸭$address"
[root@hadoop-node01 ~]# echo $username2
波波烤鸭深圳

双引号中对变量的引用会起作用。

变量的累加 ":"通过冒号累加

在这里插入图片描述
在这里插入图片描述

取消变量 unset

代码语言:javascript
复制
[root@hadoop-node01 ~]# echo $username2
波波烤鸭深圳
[root@hadoop-node01 ~]# unset username2
[root@hadoop-node01 ~]# echo $username2

提示全局变量export export 可以将局部变量提升为全局变量 创建一个s1.sh脚本文件,内容如下:

代码语言:javascript
复制
#!/bin/bash
stu1=bobo1
export stu2=bobo2

执行脚本并查看变量

代码语言:javascript
复制
[root@hadoop-node01 ~]# source s1.sh 
在这里插入图片描述
在这里插入图片描述

2.3返回值赋值

反引号的使用 反引号,运行里面的命令,并把结果返回给变量P1

代码语言:javascript
复制
[root@hadoop-node01 ~]# ls
apps  s1.sh  shellScript  zookeeper.out
[root@hadoop-node01 ~]# P1=`ls`
[root@hadoop-node01 ~]# echo $P1
apps s1.sh shellScript zookeeper.out

$() 等价于反引号

代码语言:javascript
复制
[root@hadoop-node01 ~]# P2=$(ls)
[root@hadoop-node01 ~]# echo $P2
apps s1.sh shellScript zookeeper.out

3.特殊变量

特殊变量

说明

$?

表示上一个命令的退出状态,0成功,大于1表示失败

$$

表示当前进程编号

$0

表示当前脚本名称

$n

表示n位置的输入参数(n代表数字,n>=1)

$#

表示参数的个数,常用于循环

$*和$@

都表示参数列表 【在包含""的情况下 $*把循环数据当做一条参数处理了】

$?

在这里插入图片描述
在这里插入图片描述

$$ 当前进程编号

在这里插入图片描述
在这里插入图片描述

$0 当前脚本名称

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
[root@hadoop-node01 ~]# ./s1.sh 
当前执行的脚本名称是:./s1.sh

$n 表示n位置的输入参数(n代表数字,n>=1)

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
[root@hadoop-node01 ~]# ./s1.sh a1 a2 a3 a4 a5
当前执行的脚本名称是:./s1.sh
第一个参数a1
第二个参数a2
第三个参数a3

$# 表示参数的个数,常用于循环

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
当前执行的脚本名称是:./s1.sh
第一个参数
第二个参数
第三个参数
参数总的个数:0
[root@hadoop-node01 ~]# ./s1.sh b1 b2 b3 b4 b5
当前执行的脚本名称是:./s1.sh
第一个参数b1
第二个参数b2
第三个参数b3
参数总的个数:5

$*和$@ 都表示参数列表 【在包含""的情况下 $*把循环数据当做一条参数处理了】 正常使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

双引号包裹$*和$@使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年03月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • shell变量
    • 1.系统变量
      • 2.自定义变量
        • 2.1定义规则
        • 2.2变量使用
        • 2.3返回值赋值
      • 3.特殊变量
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档