一.基础

我们定义一个变量(等号两边不能有空格)

FILEPATH=/var/home/sss
FILEFILENAME=test001

在引用这个变量是我们可以直接使用$后面跟上变量的名字

比如:       $FILEPATH
还可以 :  ${FILEPATH}

使用${}这种方式的好处是可以方便的实现两个变量的连接,同时看着也比较清楚。

${FILEPATH}/${FILEFILENAME}

这样便可以表示这个文件的全路径了

---------------------------------------------

二. 此外有时我们会看到

$1,$2这种形式,这代表执行shell时,传递进来的参数

-------------------------------------------

三. 此外我们还会看到下面的这些形式

1.如果变量米有赋值或为空,使用value的值

${variable:-value}

2.如果变量米有赋值或为空,使用value的值,并把变量赋值为value

${variable:=value}

3.检验变量是否为空

${variable:?}

------------------------------------------

以下是一些不常用的

--------------------------------------------

$0  shell的命令本身(包括完整路径)  
$1到$9 数字表示shell 的第几个参数   
$# 传递到脚本的参数个数  
$* 以一个单字符串显示所有向脚本传递的参数  
$$ 脚本运行的ID号  
$! 后台运行的最后一个进程的ID号  
$@ 与$*相同。  
$- 显示shell使用的当前选项。  
$? 显示最后命令的执行状况。0表示没有错误。

shell中变量的引用(两种方式:$变量名,${变量名})。相关推荐

  1. sh执行文件 参数传递_详解shell中脚本参数传递的两种方式

    方式一:$0,$1,$2.. 采用$0,$1,$2..等方式获取脚本命令行传入的参数,值得注意的是,$0获取到的是脚本路径以及脚本名,后面按顺序获取参数,当参数超过10个时(包括10个),需要使用${ ...

  2. Java中HashMap遍历的两种方式

    第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...

  3. 【C++面向对象】C++中运算符重载的两种方式

    我们知道在C++中可以通过重载运算符的方式,使类实现类似于基本类型的运算符操作,如+.-.*./等等.本文介绍这种重载运算符的两种方法. 我们先自定义一个类,来作为本次研究的对象: class Int ...

  4. WCF中的ServiceHost初始化两种方式

    在宿主程序中初始化ServiceHost有直接写代码和使用配置文件两种方式.使用ServiceHost首先要引用System.ServiceModel 命名空间. 1 代码方式 using(Servi ...

  5. c语言向文件中写入字符串_C语言中定义字符串的两种方式及其比较

    先看如下代码: 以上用两种方式定义一个字符串: 1.定义一个char * 类型指针,指向字符串首字符首地址. 2.定义一个数组,数组里存放元素为字符串各个字符+'0',其中'0'为码0值,编译器会自动 ...

  6. 【FFMPEG】AVFrame中buffer分配的两种方式

    AVFrame在使用ffmpeg进行编解码过程中,是最基本的数据结构. 在某些场景下,需要对AVFrame的数据区域进行提前分配,有两种方法,需要根据自己的需求来使用. (1) * This func ...

  7. Spring中自动注入的两种方式

    目录 1. 前言 2. set注入和构造注入. 3. 什么情况下要使用自动注入? 4. 自动注入之byName 5. 自动注入之byType注入 1. 前言 Spring的核心技术IOC(Intoro ...

  8. 二级指针在子函数中申请内存的两种方式

    二级指针:在主函数中申明变量,在子函数中分配内存,有两种方式返回二级指针.在这个过程只有深刻理解了C的函数调用模型,以及指针的内存模型,才能够掌握好. #pragma once #include &l ...

  9. Java并发基础01. 传统线程技术中创建线程的两种方式

    传统的线程技术中有两种创建线程的方式:一是继承Thread类,并重写run()方法:二是实现Runnable接口,覆盖接口中的run()方法,并把Runnable接口的实现扔给Thread.这两种方式 ...

  10. Asp.Net中替代Eval的两种方式

    在asp.net中的数据绑定中,我们经常会用到Eval,不过大家都知道Eval绑定是通过反射来实现的, 而反射势必会对性能造成一定的影响.不过有两种替代的方式来实现绑定数据,对性能略有提高. 1 当数 ...

最新文章

  1. 2021下半年软考各省准考证打印时间
  2. 信息系统项目管理师选择案例论文三方面考试心得分享
  3. python 中map()和lamda的简单实用
  4. Orleans学习总结(二)--创建工程
  5. UTF8 匹配汉字,字母,数字
  6. C# 窗体输入个人信息 存入txt 窗体输出
  7. 操作分布式文件之三:如何访问和操作远程文件
  8. mysql phpmyadmin远程_phpmyadmin登录远程mysql数据库
  9. 服务器怎么修改密码_亚马逊账号登陆不上,修改密码后遭冻结怎么办?有没有什么申诉的办法?...
  10. Linux IPC实践(13) --System V IPC综合实践
  11. python连接mysql用哪个模块_pymysql模块使用---Python连接MySQL数据库
  12. 57-Insert Interval
  13. Python-turtle库绘制蚊香、走动的时钟和数码管日期
  14. [转]MySQL修改root密码的多种方法
  15. adobe黑体std能商用_adobe黑体std字体下载
  16. Linux Ubuntu 安装Tomcat 7,亲测有效
  17. 【BZOJ】【P1406】【AHOI2007】【密码箱】【题解】【数论】
  18. Tomcat端口被占用,解决方法
  19. Java多线程面经整理
  20. python批量图像处理_python图像处理(4)之图像批量处理

热门文章

  1. matlab怎么找出奇数个数_用MATLAB绘制系统根轨迹和性能分析
  2. keepalived mysql双主架构图_MySQL数据库架构和同步复制流程
  3. Coding the Matrix Week 1 The Vector Space作业
  4. poj 1872 A Dicey Problem (bfs+WordFinal题)
  5. 毕业一年总结分享一些工作经验[PHP开发]
  6. C++: 对字符串转换字符集(编码)
  7. zend新建php文件夹,php - 对于Zend的项目模块基于一步一步转化成文件夹结构 - SO中文参考 - www.soinside.com...
  8. node sqlite 插入数据_Python基础系列讲解——如何使用自带的SQLite数据库
  9. maven 将依赖包打入jar中
  10. 9.linux ntp服务器搭建