Linux shell(2)

Suzhou
• 阅读 1027

1.变量 以固定名称存放的可能变化的值,可以提高脚本的适应能力,方便脚本执行中重复使用某个值。 定义/赋值变量格式为:变量名=变量值 注意事项:若指定变量已存在,则相当于重新给变量赋值;等号两边无空格;变量名区分大小写;变量名不能以数字开头,不使用关键字和特殊字符。

[root@localhost ~]# X=1                         //定义变量X并赋值为1
[root@localhost ~]# X=Centos                    //变量X重新赋值为Linux

查看/引用变量值格式为:$变量名、echo $变量名、echo ${变量名} 查看变量值:

[root@localhost ~]# echo $X
Centos

引用变量值

[root@localhost ~]# echo $X
Centos
[root@localhost ~]# echo $X6                   

[root@localhost ~]# echo $X6.5    //小数点起到分隔作用,未定义变量X6无取值
.5
[root@localhost ~]# echo ${X}6.5               //使用{}区分易混淆变量
Centos6.5

取消变量 自定义变量的两种失效方式: --退出定义变量的shell环境,变量会自动失效 --环境内手动取消:unset变量名

[root@localhost ~]# echo $X
Centos
[root@localhost ~]# unset X
[root@localhost ~]# echo $X

2.变量种类 根据使用类型区分: Linux shell(2) (1)环境变量 Linux中环境变量涉及/etc/profile(针对所有用户)和~/.bash.profile(家目录中,针对当前用户) env命令列出所有环境变量 set命令列出所有变量 (2)位置变量 执行脚本时执行的命令行参数,格式:$n,n为序号,序号为两位数的加括号如${10} $1为第一个位置参数,即脚本后第一个参数

[root@localhost ~]# cat passwd.sh 
useradd $1 2> /dev/null
echo 123456 | passwd --stdin $1 &> /dev/null
[root@localhost ~]# id test1
id: test1: no such user
[root@localhost ~]# sh passwd.sh test1
[root@localhost ~]# id test1
uid=1002(test1) gid=1002(test1) groups=1002(test1)

$3为第3个位置参数,即脚本后第3个参数

[root@localhost ~]# cat passwd.sh 
useradd $3 2> /dev/null
echo 123456 | passwd --stdin $3 &> /dev/null
[root@localhost ~]# sh passwd.sh test test1 test2
[root@localhost ~]# id test
id: test: no such user
[root@localhost ~]# id test1
id: test1: no such user
[root@localhost ~]# id test2
uid=1002(test2) gid=1002(test2) groups=1002(test2)

(3)预定义变量 可以直接使用,不可以修改赋值 Linux shell(2)

点赞
收藏
评论区
推荐文章
浅梦一笑 浅梦一笑
4个月前
初学 Python 需要安装哪些软件?超级实用,小白必看!
编程这个东西是真的奇妙。对于懂得的人来说,会觉得这个工具是多么的好用、有趣,而对于小白来说,就如同大山一样。其实这个都可以理解,大家都是这样过来的。那么接下来就说一下python相关的东西吧,并说一下我对编程的理解。本人也是小白一名,如有不对的地方,还请各位大神指出01名词解释:如果在编程方面接触的比较少,那么对于软件这一块,有几个名词一定要了解,比如开发环
技术小男生 技术小男生
4个月前
linux环境jdk环境变量配置
1:编辑系统配置文件vi/etc/profile2:按字母键i进入编辑模式,在最底部添加内容:JAVAHOME/opt/jdk1.8.0152CLASSPATH.:$JAVAHOME/lib/dt.jar:$JAVAHOME/lib/tools.jarPATH$JAVAHOME/bin:$PATH3:生效配置
刚刚好 刚刚好
4个月前
css问题
1、在IOS中图片不显示(给图片加了圆角或者img没有父级)<div<imgsrc""/</divdiv{width:20px;height:20px;borderradius:20px;overflow:h
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
晴空闲云 晴空闲云
4个月前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
Wesley13 Wesley13
1年前
MySQL查询按照指定规则排序
1.按照指定(单个)字段排序selectfromtable_nameorderiddesc;2.按照指定(多个)字段排序selectfromtable_nameorderiddesc,statusdesc;3.按照指定字段和规则排序selec
Wesley13 Wesley13
1年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
3A网络 3A网络
4个月前
开发一个不需要重写成 Hive QL 的大数据 SQL 引擎
开发一个不需要重写成HiveQL的大数据SQL引擎学习大数据技术的核心原理,掌握一些高效的思考和思维方式,构建自己的技术知识体系。明白了原理,有时甚至不需要学习,顺着原理就可以推导出各种实现细节。各种知识表象看杂乱无章,若只是学习
helloworld_34035044 helloworld_34035044
6个月前
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
3A网络 3A网络
4个月前
理解 virt、res、shr 之间的关系(linux 系统篇)
理解virt、res、shr之间的关系(linux系统篇)前言想必在linux上写过程序的同学都有分析进程占用多少内存的经历,或者被问到这样的问题——你的程序在运行时占用了多少内存(物理内存)?通常我们可以通过t
Suzhou
Suzhou
Lv1
这个网站设计堪称垃圾。CTRL+S过后的东西,重启电脑只能保存5行。多按几次CTRL+S还提示频繁保存不了。吐了。
17
文章
2
粉丝
3
获赞