加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_新乡站长网 (https://www.0373zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

UNIX Shell变量 《shell第一章》基本语法入门

发布时间:2023-01-05 11:17:17 所属栏目:Unix 来源:
导读:  今天我们来聊一聊shell入门篇的第一章。

  我们主要从以下三个方面来开始本节内容。

  初识shell变量位置变量和特殊变量shell初识

  shell长什么样?究竟是什么?简单地说就是一种编程语言,至
  今天我们来聊一聊shell入门篇的第一章。
 
  我们主要从以下三个方面来开始本节内容。
 
  初识shell变量位置变量和特殊变量shell初识
 
  shell长什么样?究竟是什么?简单地说就是一种编程语言,至于往深了去讲,科研型的内容,百度百科上面全部都有。
 
  今天我就从一个新手的角度,来看一看如何开始shell的学习。首先,我们先看一个shell的脚步到底长什么样子,结构是什么样子的?
 
  从这里我们可以大概了解到三点
 
  第一、是以.sh结尾的文件
 
  第二、标注了解释器
 
  第三、有自己对应的语法结构和内置关键字等(这个有点像废话,哈哈)
 
  我们做一下解释:
 
  #!/bin/bash #!跟shell的完整路径。作用是显示后期种命令以哪一种shell来执行,如果不指定shell,则以当前shell作为执行的shell
 
  #this is the first example shell中以#开头表示注释,执行时忽略改行
 
  shell程序一般以.sh结尾
 
  那么如何去创建一个shell呢?其实也很简单。vi和vim都可以UNIX Shell变量,这里推荐使用vim,因为有颜色提示,方便代码的阅读。即 vim test.sh这样的结构。
 
  第一步:创建一个包含命令和控制结构的shell文件
 
  第二步:修改文件的执行权限
 
  第三步:执行
 
  执行的方法有三种,个人推荐第一种,使用方便。
 
  ① ./example.sh
 
  ② 绝对路径 /home/shell/example.sh
 
  ③ bash example.sh 不需要执行权限
 
  变量
 
  学习任何一门编程语言我们都需要了解的一个内容就是变量表达式,或者说是赋值语言。对于有一定其他语言基础的人来说shell的变量就非常简单了。对于一个初学者来说,掌握以下几点,也是可以比较轻松入门shell变量的。
 
  值得一提的是,shell在赋值的时候,“=”两边是不允许有空格的,这一点对于新手来说,要特别注意。
 
  变量是shell传递数据的一种方法。变量是用来代替每个值的符号名。变量分为临时变量和永久变量。
 
  例如:x=3
 
  1、临时变量:
 
  shell程序内部定义的,作用范围仅限于定义它的程序,对其他程序不可见。包括用户自定义变量、位置变量和预定义变量。
 
  这种变量可以属于会消失的变量,unset可以了解一下。
 
  2、永久性变量:
 
  是环境变量,不随shell脚本执行结束而消失。
 
  例如:PATH
 
  在用户自定义变量是也是需要遵守一定的规则的。用户自定义变量由字母、下划线打头,字母、数字、下划线组成,区分大小写,长度无限制,使用变量时前面加$。
 
  变量可以直接赋值。
 
  例如:A=aaa
 
  也可以将一个命令的执行结果赋值给变量
 
  也可以给变量赋值多个值
 
  由于这里会调用变量,因此就会设计单引号和双引号的使用,我们也简单介绍一下。
 
  单引号和双引号区别
 
  单引号中内容原封不对赋值给变量
 
  双引号取消了空格的作用,特殊符号的含义是保留的,尤其是使用一些需要转移的符号例如\n,\t等,双引号就再合适不过了。
 
  前面有提过一嘴,自定义变量的生命周期在程序中。那么如何查询变量和消除变量呢?
 
  set可以查询变量,unset可以删除变量。
 
  位置变量和特殊变量
 
  这里我们介绍一个比较重要的点,后期shell程序中我们会经常用到,执行一个shell程序也好,或者是shell脚本中我们去做一些条件表达式的判断,都会用到这里讲的内容。
 
  位置变量:(位置参数用$N来表示)
 
  shell解释执行用户的命令时,将命令行的第一个字作为命令名,而其他的作为参数。由此出现在命令行上的位置确定的参数称为位置参数。
 
  [root@localhost shell]# ./test.sh file1 file2 file3
 
  $0 这个程序的文件名
 
  $n 这个程序的第n个参数值,n=1...N
 
  特殊变量是shell中默认设定好的,且不能修改,这些变量程序执行时就有了。
 
  $* 这个程序的所有参数
 
  $# 这个程序的参数个数
 
  $ 这个程序的PID
 
  $! 执行上一个后台程序的pid
 
  $? 执行上一个指令的返回值
 
  这里我可能讲得比较浅,有需要深入学习的编程朋友,可以私信我会推荐一个比较好的学习网站。每一次总结的过程也是一次熟悉的过程,也希望能够对大大家有所帮助。欢迎更多朋友一起来探讨和学习。
 

(编辑:开发网_新乡站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章