有的朋友一直在问我,到底怎么学习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的变量的学习相关推荐

  1. 详细介绍Linux shell脚本系列基础学习(列表)

    本系列适合Linux初学者,属于Linux入门级教程,主要介绍了Shell的分类.语法格式以及脚本的使用和编写格式等. 不断更新中,是Shell学习的必读经典教程.现主要包含以下文章: Linux S ...

  2. shell脚本实操学习之函数、正则表达式

    shell脚本实操学习之函数.正则表达式 shell函数 函数介绍 函数语法 函数应用 正则表达式 正则表达式介绍 特殊字符 POSIX字符 shell函数 函数介绍 在写代码的时候,我们很多人习惯从 ...

  3. shell脚本的系统性学习笔记

    shell脚本的系统性学习笔记 文章目录 shell脚本的系统性学习笔记 一.入门基础 1.1 脚本的书写格式 1.2脚本的各种执行方式 1.3数据的输入与输出 1.4输入输出重定向 1.5变量 二. ...

  4. shell模板变量替换

    1. 前言 我们经常使用一些模板语言来处理一些变量替换.比如jsp,php,velocity,freemarker,thymeleaf等.那对于shell来说,应该怎样替换变量呢.有一种很简单的办法可 ...

  5. 【跟晓月学shell脚本】掌握shell脚本变量实战案例

    前言 上篇文章我们探讨了shell脚本变量的基本原理和概念,本篇我们基于上面的内容增加一些实战. 如果你还没有学习shell脚本的变量理论,可以点击链接:[跟晓月学shell脚本]掌握shell脚本变 ...

  6. 【跟晓月学shell脚本】掌握shell脚本变量原理及概念

    前言 跟晓月一起学shell,死磕shell脚本,让shell脚本学习不再难. 想学习更多shell脚本的案例,可以前往我的师父的shell脚本专栏:shell脚本从入门到实战-案例篇 文章目录 前言 ...

  7. Linux的Bash——(二)Shell的变量

    2. Shell的变量 2.1 什么是变量? 变量就是以特定的字符串代表不固定的内容 变量的优点又有那些? (1) 可变性与方便性 关于可变性和方便性,我相信如果有接触过至少一门编程语言就能很快Get ...

  8. 【Linux】Shell三类变量的作用域——linux shell “永久环境变量”、“临时环境变量”和普通变量之完全解读...

    2015-05-08 00:15 3896人阅读 评论(10) 收藏 举报 本文章已收录于: 分类: 软件开发进阶(419) 作者同类文章X Unix/Linux杂项(118) 作者同类文章X 版权声 ...

  9. shell中变量的替换

    shell中变量的替换 Bash Shell可以进行变量的条件替换,既只有某种条件发生时才进行替换,替换 条件放在{}中. 1.${value:-word} 当变量未定义或者值为空时,返回值为word ...

最新文章

  1. 《棋牌游戏服务器》玩法服务器架构
  2. 怎么样配置交换机TRUNK
  3. android打包apk、apk签名及360加固工具的使用
  4. 使用ant执行Java代码
  5. “拯救网站运维经理赵明”有奖方案征集启事
  6. ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked.
  7. 很多餐饮店都会倒闭,最主要的是有2大原因
  8. javabean和java类_java对象 POJO和JavaBean的区别
  9. python 按钮更改输入框的值_利用 50 行 Python 代码构建一个在线文本生成器!
  10. 用JSLint+Ant检验HTML代码
  11. 0046 @Transactional注解的几个参数--事务传播控制--事务隔离级别--异常与回滚
  12. 2021-07-09商场主页及分类
  13. 算法:判断对称树 101. Symmetric Tree
  14. NTKO Office乱码问题
  15. centos7配置IP地址
  16. 金橙子打标卡labview打标开发没头绪?c#封装成dll后labview调用真香!
  17. [资讯]北京二套学区房奋斗目标
  18. 【Python 3.7.9官方文档】之术语对照表
  19. 有道无术,术尚可求,有术无道,止于术
  20. 携程数据开发2022留用实习面试

热门文章

  1. 【Methodot低代码教程系列03】——零代码十分钟制作电影票房管理后台
  2. 一文解释清楚Google BBR拥塞控制算法原理
  3. Hosmer-Lemeshow test及R实现
  4. NFC手机制作备用门禁卡
  5. 工作记录:举步维艰的在线 word 之旅 - tinymce
  6. excel mysql在线库存_excel如何制作进货销售库存表
  7. 夜光带你走进软件工程(十五)
  8. oracle 常见游标,Oracle常见游标使用
  9. 最小堆以及最小优先队列的实现
  10. SuperSocket服务器架设(三):在SuperSocket中自定义Command、AppServer和AppSession