shell的变量的学习
有的朋友一直在问我,到底怎么学习shell,学习shell有什么书籍可用,其实说白了,你想学好shell ,最好的资料就是官方文档,man bash要比市面上任何一本书要好。
很多人在学习的时候总是拼命的找一些书来看,却忘记了官方文档才是最好的学习资料,当然有人可以能是因为英语不过关,如果你是这个原因,建议你好好学习英语,这个很重要
1.变量的命名
1)只能使用英文、数字和下划线,并且以英文和下划线开头。
2)不能跟系统里已知的环境变量名重复
其实语言都是可以类比的,Python是不是也有这样的要求你可以想一下咯。
2.变量的赋值
赋值:
变量可以通过以下方式进行赋值:
var=value
Var事变量名 value 是赋给变量的值。
[root@xuegod60 ~]# x=3
[root@xuegod60 ~]# echo $x
3
如果value不包含任何空白字符(例如空格),那么
它就不需要使用引号进行引用,否则必须使用单引号或双引号。
这里需要注意一个常见的错误:
Var =value 不等同与var=value
3.特殊变量
$# 参数的个数
$n 传参的位置,如果是 $1 就是脚本传参的第一个值。
$0 脚本名称
$? 上一个命令执行状态返回值,0的话是正确 非0的话是报错。
Shell脚本实例:vim xinsz08.sh
#!/bin/bash
if [ $# -ne 2 ]
then
echo "$0 agre1 agre2"
exit 1
fi
echo $1 $2
echo $?
执行脚本 sh +x xinsz08.sh add
输出结果为:
[root@localhost sh]# sh xinsz08.sh add
xinsz8.sh agre1 agre2
上述结果中canshu.sh 对应canshu.sh中的$0 后面因为传参只有一个所以报错提示需要输入两个。
执行脚本 sh xinsz08.sh add edd
[root@localhost sh]# sh xinsz08.sh add edd
add edd
0
上述结果是正常的 add edd 对应 $1和$2
0对应的$? 说明脚本执行是正常的。
4. 变量与‘引号’
a=123
c=$a
b=’245+$a’
d=”245+$a”
实例说明:vim test1.sh
#!/bin/bash
a=123
c=$a
b='234+$a'
d="234+$a"
echo "c=$c"
echo "b=$b"
echo "d=$d"
执行脚本sh test1.sh 输出echo结果为:
c=123
b=234+$a
d=234+123
引号关系为:
b='234+$a' 单引号是所见即所得
d="234+$a" 双引号是使特殊符号生效如$a 变量生效
补充回顾:
Shell 有两类变量:临时变量和永久变量。
临时变量:是shell 程序内部定义的,其使用范围仅限于定义它的程序,对其它程序不可见。
永久变量是环境变量,其值不随shell 脚本的执行结束而消失。
关注微信公众号:xinsz08 这里有你想要的一切
shell的变量的学习相关推荐
- 详细介绍Linux shell脚本系列基础学习(列表)
本系列适合Linux初学者,属于Linux入门级教程,主要介绍了Shell的分类.语法格式以及脚本的使用和编写格式等. 不断更新中,是Shell学习的必读经典教程.现主要包含以下文章: Linux S ...
- shell脚本实操学习之函数、正则表达式
shell脚本实操学习之函数.正则表达式 shell函数 函数介绍 函数语法 函数应用 正则表达式 正则表达式介绍 特殊字符 POSIX字符 shell函数 函数介绍 在写代码的时候,我们很多人习惯从 ...
- shell脚本的系统性学习笔记
shell脚本的系统性学习笔记 文章目录 shell脚本的系统性学习笔记 一.入门基础 1.1 脚本的书写格式 1.2脚本的各种执行方式 1.3数据的输入与输出 1.4输入输出重定向 1.5变量 二. ...
- shell模板变量替换
1. 前言 我们经常使用一些模板语言来处理一些变量替换.比如jsp,php,velocity,freemarker,thymeleaf等.那对于shell来说,应该怎样替换变量呢.有一种很简单的办法可 ...
- 【跟晓月学shell脚本】掌握shell脚本变量实战案例
前言 上篇文章我们探讨了shell脚本变量的基本原理和概念,本篇我们基于上面的内容增加一些实战. 如果你还没有学习shell脚本的变量理论,可以点击链接:[跟晓月学shell脚本]掌握shell脚本变 ...
- 【跟晓月学shell脚本】掌握shell脚本变量原理及概念
前言 跟晓月一起学shell,死磕shell脚本,让shell脚本学习不再难. 想学习更多shell脚本的案例,可以前往我的师父的shell脚本专栏:shell脚本从入门到实战-案例篇 文章目录 前言 ...
- Linux的Bash——(二)Shell的变量
2. Shell的变量 2.1 什么是变量? 变量就是以特定的字符串代表不固定的内容 变量的优点又有那些? (1) 可变性与方便性 关于可变性和方便性,我相信如果有接触过至少一门编程语言就能很快Get ...
- 【Linux】Shell三类变量的作用域——linux shell “永久环境变量”、“临时环境变量”和普通变量之完全解读...
2015-05-08 00:15 3896人阅读 评论(10) 收藏 举报 本文章已收录于: 分类: 软件开发进阶(419) 作者同类文章X Unix/Linux杂项(118) 作者同类文章X 版权声 ...
- shell中变量的替换
shell中变量的替换 Bash Shell可以进行变量的条件替换,既只有某种条件发生时才进行替换,替换 条件放在{}中. 1.${value:-word} 当变量未定义或者值为空时,返回值为word ...
最新文章
- 《棋牌游戏服务器》玩法服务器架构
- 怎么样配置交换机TRUNK
- android打包apk、apk签名及360加固工具的使用
- 使用ant执行Java代码
- “拯救网站运维经理赵明”有奖方案征集启事
- ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked.
- 很多餐饮店都会倒闭,最主要的是有2大原因
- javabean和java类_java对象 POJO和JavaBean的区别
- python 按钮更改输入框的值_利用 50 行 Python 代码构建一个在线文本生成器!
- 用JSLint+Ant检验HTML代码
- 0046 @Transactional注解的几个参数--事务传播控制--事务隔离级别--异常与回滚
- 2021-07-09商场主页及分类
- 算法:判断对称树 101. Symmetric Tree
- NTKO Office乱码问题
- centos7配置IP地址
- 金橙子打标卡labview打标开发没头绪?c#封装成dll后labview调用真香!
- [资讯]北京二套学区房奋斗目标
- 【Python 3.7.9官方文档】之术语对照表
- 有道无术,术尚可求,有术无道,止于术
- 携程数据开发2022留用实习面试
热门文章
- 【Methodot低代码教程系列03】——零代码十分钟制作电影票房管理后台
- 一文解释清楚Google BBR拥塞控制算法原理
- Hosmer-Lemeshow test及R实现
- NFC手机制作备用门禁卡
- 工作记录:举步维艰的在线 word 之旅 - tinymce
- excel mysql在线库存_excel如何制作进货销售库存表
- 夜光带你走进软件工程(十五)
- oracle 常见游标,Oracle常见游标使用
- 最小堆以及最小优先队列的实现
- SuperSocket服务器架设(三):在SuperSocket中自定义Command、AppServer和AppSession