Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Shell中的变量

Shell中的变量

作者头像
编程那点事
发布于 2023-02-25 08:15:08
发布于 2023-02-25 08:15:08
1.7K00
代码可运行
举报
文章被收录于专栏:java编程那点事java编程那点事
运行总次数:0
代码可运行
系统变量

常用系统变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$HOME、$PWD、$SHELL、$USER

2.案例实操 (1)查看系统变量的值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ echo $HOME

(2)显示当前Shell中所有变量:set

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ set

BASH=/bin/bash
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
自定义变量

1.基本语法 (1)定义变量:变量=值 (2)撤销变量:unset 变量 (3)声明静态变量:readonly变量,注意:不能unset

2.变量定义规则 ​(1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。 ​(2)等号两侧不能有空格 ​(3)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。 ​(4)变量的值如果有空格,需要使用双引号或单引号括起来。

3.案例实操 ​(1)定义变量A

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
A=5
echo $A
5

​(2)给变量A重新赋值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
A=8
echo $A
8

​(3)撤销变量A

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
unset A
echo $A

​(4)声明静态的变量B=2,不能unset

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
readonly B=2
echo $B
2

B=9
-bash: B: readonly variable

​(5)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
C=1+2
echo $C
1+2

(6)变量的值如果有空格,需要使用双引号或单引号括起来

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
D=I love b
-bash: world: command not found

D="I love b"
echo $D
I love b

​(7)可把变量提升为全局环境变量,可供其他Shell程序使用,规则:export 变量名

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim helloworld.sh

在helloworld.sh文件中增加echo $B

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash

echo "helloworld"
echo $B

./helloworld.sh
Helloworld
发现并没有打印输出变量B的值。
export B
./helloworld.sh
helloworld
2
特殊变量:$n

1.基本语法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
​$n​(功能描述:n为数字,$0代表该脚本名称,$1-$9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10}

2.案例实操 (1)输出该脚本文件名称、输入参数1和输入参数2 的值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
touch parameter.sh
vim parameter.sh

#!/bin/bash
echo "$0  $1   $2"
特殊变量:$#

1.基本语法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
​$#​(功能描述:获取所有输入参数个数,常用于循环)。

2.案例实操 (1)获取输入参数的个数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim parameter.sh

#!/bin/bash
echo "$0  $1   $2"
echo $#

./parameter.sh cls  xz
parameter.sh cls xz
2
特殊变量:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$*、$@

1.基本语法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
​$*​(功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)

​$@​(功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)

2.案例实操 (1)打印输入的所有参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim parameter.sh

#!/bin/bash
echo "$0  $1   $2"
echo $#
echo $*
echo $@

bash parameter.sh 1 2 3
parameter.sh  1   2 // 文件名 前两个参数
3 // 参数的数量
1 2 3 // 参数的内容
1 2 3 // 参数的内容
特殊变量:$?

1.基本语法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$?​(功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。)

2.案例实操 ​(1)判断helloworld.sh脚本是否正确执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./helloworld.sh
hello world
echo $?
0
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
快速学习-Shell中的变量
1.基本语法 (1)定义变量:变量=值 (2)撤销变量:unset 变量 (3)声明静态变量:readonly变量,注意:不能unset 2.变量定义规则 (1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。 (2)等号两侧不能有空格 (3)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。 (4)变量的值如果有空格,需要使用双引号或单引号括起来。 3.案例实操 (1)定义变量A
cwl_java
2020/03/25
5070
大数据系列博客之 --- 深入简出 Shell 脚本语言(基础篇)
注意:第一种执行方法,本质是bash解析器帮你执行脚本,所以脚本本身不需要执行权限。第二种执行方法,本质是脚本需要自己执行,所以需要执行权限。
房上的猫
2019/01/24
4960
大数据系列博客之 --- 深入简出 Shell 脚本语言(基础篇)
零基础小白如何入门Shell,快来看看(收藏)这篇大总结!!
最近有点小忙,心细的朋友们可能已经看出菌已经好久没更新博客了。但是不慌,该掌握的知识,咋们也不能落下。这一期博客,我也不搞那些花里胡哨了,专心写一篇总结Shell精华的博客,也算是为像Alice一样的“小小白”谋点福利吧…φ(๑˃∀˂๑)♪
大数据梦想家
2021/01/27
1.3K0
零基础小白如何入门Shell,快来看看(收藏)这篇大总结!!
Shell基础命令
1. Shell基础 1.1 Shell概述 在Linux内核与用户之间的解释器程序 通常指 /bin/bash 负责向内核翻译及传达用户/程序指令 相当于操作系统的“外壳” 1.2 Shell解析器 1). Linux提供的Shell解析器有: [root@xxx-test2 ~]# cat /etc/shells /bin/sh /bin/bash /usr/bin/sh /usr/bin/bash 2). bash和sh的关系: [root@xxx-test2 ~]# cd /bin/ [root@
牧晗
2020/06/14
1.5K0
linux系列之shell编程(一)
$n 功能描述:n为数字,$0 代表该脚本名称,$1-$9代表第一到第九个参数,十以内的参数,十以上的参数需要用大括号包含,如${10}
趣学程序-shaofeer
2020/07/11
1.4K0
linux系列之shell编程(一)
Shell编程从看懂到看开①(Shell概述、变量、运算符、条件判断)
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。==Shell 既是一种命令语言(可以理解为命令行解释器),又是一种程序设计语言。==
十八岁讨厌编程
2022/12/10
8740
大数据学习之_02_Shell学习
1、脚本格式 脚本以#!/bin/bash开头(表示指定解析器) 2、第一个Shell脚本:helloworld (1)需求:创建一个Shell脚本,输出helloworld (2)案例实操:
黑泽君
2019/02/26
1.6K0
大数据系列博客之 --- 深入简出 Shell 脚本语言(提升篇)
-ge 大于等于(greater equal) -ne 不等于(Not equal)
房上的猫
2019/01/24
4610
案例驱动 :从入门到掌握Shell编程详细指南
阅读提示:阅读本文大约需要15分钟,本文结合了众多的实操案例,从入门到掌握shell编程,学习起来花费时间较久,建议收藏起来慢慢学习。
百思不得小赵
2022/12/01
1.2K0
案例驱动 :从入门到掌握Shell编程详细指南
shell脚本简介+编写
$#:获取所有输入参数个数,常用于循环,判断参数的个数是否正确以及加强脚本的健壮性。
ha_lydms
2023/08/10
4420
shell脚本简介+编写
Linux Shell编程
Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。看一个示意图
用户9615083
2022/12/25
36.8K0
Linux Shell编程
一文掌握shell脚本的基本语法
欢迎大家star我的GitHub:https://github.com/SolerHo/geeks-shell,建议直接使用GitHub来查看排版,发现markdown有错位的情况。
阳光罗诺
2022/01/03
4.2K0
一文掌握shell脚本的基本语法
Linux之Shell编程
Shell 是一个命令行解释器, 它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序, 用户可以用 Shell 来启动、 挂起、 停止甚至是编写一些程序.
OY
2022/02/21
2K0
Linux之Shell编程
一脸懵逼学习Linux的Shell编程
别先生
2018/01/02
7850
shell编程基本语法和变量
一.编写shell脚本基本格式 拿最简单的hello word举例 .#!/bin/bash echo 'hello world' .#!/bin/bash:告诉计算机,使用bash解释器来执行代码 echo: 打印 二.运行shell脚本 方法一(推荐使用) chmod 777 myshell.sh #给文件权限 ./myshell.sh #运行文件 方法2 sh myshell.sh 三.注释 单行注释 #内容 多行注释 :<<! 内容 ! 四.定义变量 基本语法 1.定义变量:变
小小咸鱼YwY
2020/06/19
7600
快速学习-Shell流程控制
注意事项: (1)[ 条件判断式 ],中括号和条件判断式之间必须有空格 (2)if后要有空格 2.案例实操 (1)输入一个数字,如果是1,则输出banzhang zhen shuai,如果是2,则输出cls zhen mei,如果是其它,什么也不输出。
cwl_java
2020/03/25
2880
shell流程控制
​注意事项: (1)[ 条件判断式 ],中括号和条件判断式之间必须有空格 (2)if后要有空格
编程那点事
2023/02/25
2100
shell流程控制
Shell编程
文章目录 1. Shell编程 1.1. 变量 1.2. 位置参数变量 1.2.1. $*与$@的区别 1.2.2. 实例 1.3. 预定义变量 1.4. 运算符 1.4.1. 基本语法 1.4.2. 实例 1.5. 判断语句 1.5.1. 基本语法 1.5.2. 常用判断条件 1.5.3. 实例 1.6. 流程控制 1.6.1. if 1.6.1.1. 基本语法 1.6.1.2. 实例 1.6.2. case 1.6.2.1. 基本语法 1.6.2.2. 实例 1.6.3. for循环 1.6.3.1
爱撒谎的男孩
2019/12/31
5700
shell编程
Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的系统级程序
小小咸鱼YwY
2020/11/04
5490
【趣学程序】Linux基础命令
常用:/home /etc /mnt /root /opt /tmp /usr /var
趣学程序-shaofeer
2019/07/27
2K0
相关推荐
快速学习-Shell中的变量
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验