《shell第一章》基本语法入门

《shell第一章》基本语法入门今天我们来聊一聊shell入门篇的第一章。我们主要从以下三个方面来开始本节内容。初识shell变量位置变量和特殊变量shell初识shell长什

大家好,欢迎来到IT知识分享网。

今天我们来聊一聊shell入门篇的第一章。

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

  1. 初识shell
  2. 变量
  3. 位置变量和特殊变量

shell初识

shell长什么样?究竟是什么?简单地说就是一种编程语言,至于往深了去讲,科研型的内容,百度百科上面全部都有。

今天我就从一个新手的角度,来看一看如何开始shell的学习。首先,我们先看一个shell的脚步到底长什么样子,结构是什么样子的?

《shell第一章》基本语法入门

从这里我们可以大概了解到三点

第一、是以.sh结尾的文件

第二、标注了解释器

第三、有自己对应的语法结构和内置关键字等(这个有点像废话,哈哈)

我们做一下解释:

#!/bin/bash #!跟shell的完整路径。作用是显示后期种命令以哪一种shell来执行,如果不指定shell,则以当前shell作为执行的shell

#this is the first example shell中以#开头表示注释,执行时忽略改行

shell程序一般以.sh结尾

那么如何去创建一个shell呢?其实也很简单。vi和vim都可以,这里推荐使用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

也可以将一个命令的执行结果赋值给变量

《shell第一章》基本语法入门

也可以给变量赋值多个值

《shell第一章》基本语法入门

由于这里会调用变量,因此就会设计单引号和双引号的使用,我们也简单介绍一下。

单引号和双引号区别

单引号中内容原封不对赋值给变量

双引号取消了空格的作用,特殊符号的含义是保留的,尤其是使用一些需要转移的符号例如\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

$? 执行上一个指令的返回值

《shell第一章》基本语法入门

这里我可能讲得比较浅,有需要深入学习的编程朋友,可以私信我会推荐一个比较好的学习网站。每一次总结的过程也是一次熟悉的过程,也希望能够对大大家有所帮助。欢迎更多朋友一起来探讨和学习。

同时祝大家五一快乐。[666]

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/84472.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信