Linux最新【Linux】shell脚本基础-变量,近期有面试的必看

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

LANG=en_US.UTF-8PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/binNOTIFY_SOCKET=/run/systemd/notifySSH_USE_STRONG_RNG=0[root@ecs-c13b ~]#




#### []( )用户定义变量



##### []( )变量的命名与规则:



1.  变量由字母或者下划线打头,不允许数字开头,后面由字母,数字或者下划线组成,并且大小写意义不同。

2.  在使用变量时候,需要在变量名字前面加$

3.  等号两边不能有空格

4.  变量值的叠加,使用${}

5.  命令替换,使用$()或者反引号



###### []( )1) 变量规则测试



[root@ecs-c13b ~]# 2eee=4 ## 不能以数字开头

-bash: 2eee=4: command not found

[root@ecs-c13b ~]# name=zhangshan ### 大小写的区别

[root@ecs-c13b ~]# NAME=lisi

[root@ecs-c13b ~]# echo $name

zhangshan

[root@ecs-c13b ~]# echo $NAME

lisi




###### []( )2) 关于${} 的使用,拼接测试



[root@ecs-c13b ~]# ctest=mysql

[root@ecs-c13b ~]# echo $ctest

mysql

[root@ecs-c13b ~]# echo $ctest-txt

mysql-txt

[root@ecs-c13b ~]# echo $ctest.db.log-txt

mysql.db.log-txt

[root@ecs-c13b ~]# echo {$ctest}db.log

{mysql}db.log

[root@ecs-c13b ~]# echo ${ctest}db.log

mysqldb.log




###### []( )3)**能不能不加{}?**



[root@ecs-c13b ~]# echo $ctestdb.log-txt

.log-txt




###### []( )4) 使用反引号或者$()



\[root@ecs-c13b ~\]# echo date  

date  

\[root@ecs-c13b ~\]# echo $(date)  

Wed Aug 5 15:53:03 CST 2020  

\[root@ecs-c13b ~\]# echo `date`  

Wed Aug 5 15:53:15 CST 2020  

\[root@ecs-c13b ~\]#



###### []( )5) 特殊用法



[root@ecs-c13b ~]# date +“%Y-%m”

2020-08

[root@ecs-c13b ~]# date +“%Y-%m-%d-%H%M%S”

2020-08-05-155600

[root@ecs-c13b ~]#


date命令加减操作:

date +%Y%m%d #显示当天年月日

date -d “+1 day” +%Y%m%d #显示明天的日期

date -d “-1 day” +%Y%m%d #显示昨天的日期

date -d “-1 month” +%Y%m%d #显示上一月的日期

date -d “+1 month” +%Y%m%d #显示下一月的日期

date -d “-1 year” +%Y%m%d #显示前一年的日期

date -d “+1 year” +%Y%m%d #显示下一年的日期




###### []( )6) 单引号和双引号的区别



*   ‘’ 在单引号中所有的字符包括特殊字符($,’’,\`和\\)都将解释成字符本身而成为普通字符。

*   “” 在双引号中,除了$, ‘’, \`和\\以外所有的字符都解释成字符本身,拥有“调用变量的值”、“引用命令”和“转义符”的特殊含义



注:\\转义符,跟在\\之后的特殊符号将失去特殊含义,变为普通字符。如$将输出“$”符号,而不当做是变量引用



[root@ecs-c13b ~]# name=zmgaosh

[root@ecs-c13b ~]# echo $name

zmgaosh

[root@ecs-c13b ~]# echo ‘$name’

$name

[root@ecs-c13b ~]# echo “$name”

zmgaosh




#### []( )特殊变量



| 特殊变量 | 含义 |

| --- | --- |

| $$ | Shell本身的PID(ProcessID) |

| $! | Shell最后运行的后台Process的PID |

| $? | 最后运行的命令的结束代码(返回值) |

| $- | 使用Set命令设定的Flag一览 |

| $\* | 所有参数列表。如"$\*“用「”」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 |

| $@ | 所有参数列表。如"$@“用「”」括起来的情况、以"$1" “ 2 " … " 2" … " 2"…"n” 的形式输出所有参数。 |

| $# | 添加到Shell的参数个数 |

| $0 | Shell本身的文件名 |

| `$1 到$n` | 添加到Shell的各参数值。$1是第1参数、$2是第2参数…。 |



##### []( )特殊变量实例



[root@ecs-c13b ~]# vim ex1

[root@ecs-c13b ~]# chmod +x ex1

[root@ecs-c13b ~]# ./ex1 11 12 14

Shell 传递参数实例!

执行的文件名:./ex1

第一个参数为:11

第二个参数为:12

第三个参数为:14

[root@ecs-c13b ~]#




#### []( )变量的案例


![](https://img-blog.csdnimg.cn/img_convert/9a8cb5f8c0ec69e6499adead0da6e95b.png)


最全的Linux教程,Linux从入门到精通

======================

1.  **linux从入门到精通(第2版)**

2.  **Linux系统移植**

3.  **Linux驱动开发入门与实战**

4.  **LINUX 系统移植 第2版**

5.  **Linux开源网络全栈详解 从DPDK到OpenFlow**



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/59742364bb1338737fe2d315a9e2ec54.png)



第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/9d4aefb6a92edea27b825e59aa1f2c54.png)



**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**

> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.youkuaiyun.com/forums/4f45ff00ff254613a03fab5e56a57acb)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值