Shell脚本基础

shell介绍

shell脚本简单来说就是:将需要执行的命令保存到文本中,按照顺序执行。

它是解释型的,意味着不需要编译。

准确叙述

若干命令 + 脚本的基本格式 + 脚本特定语法 + 表达的意思= shell脚本

shell 编程注意事项

shell 命名:Shell脚本名称命名一般为英文、大写、小写,后缀以.sh 结尾

不能使用特殊符号、空格。

shell脚本名称要写得一眼可以看出它是有什么功能的。

编写shell脚本的时候,最前面要加上一行:#!/bin/bash,因为linux里面不仅仅只有bash一个解析器,还有其它的,它们之间的语法会有一些不同,所以最好加上这一句话,告诉系统要用这个解析器。

shell脚本变量不能以数字、特殊符号开头,可以使用下划线_,但不能用破折号--

bash的特性

1.命令和文件自动补全

Tab只能补全命令和文件。

2.常用的快捷键

ctrl+c:终止前台运行的程序

ctrl+d:退出

ctrl+l:清屏(clear

ctrl+a:光标移到命令行的最前端

ctrl+e:光标移到命令行的后端

ctrl+u:删除光标前所有字符

ctrl+k:删除光标后所有字符

3.常用的通配符

*:代表0到无穷多个任意字符

?:代表某一个任意字符

[abcd]:代表a,b,c,d中的任何一个字符

[0-9]:代表0到9之间的任何一个数字

[^abcd]代表除a,b,c,d之外的任何一个字符

符号介绍

①双引号"":在双引号中特殊符号都没有特殊含义

但是“$”、“`”、“\”是例外,拥有“调用变量的值”“引用命令”“转移符”的特殊含义

②单引号'':在单引号中所有的特殊符号,如“$”和“`”(反引号)都没有特殊含义

“”双引号里面的$符号有调用到,最终输出的是变量a的值。而在‘’单引号里面没有调用到$符号,最终输出的是单引号里面的内容。

Shell脚本基础_第1张图片 Shell脚本基础_第2张图片

③反撇号``:反引号括起来的内容是系统命令,在bash中会先执行他。和$()作用一样,不过推荐使用$(),因为反引号非常容易看错。下面介绍$()时会说。

Shell脚本基础_第3张图片

打开lx文件夹;创建一个shell脚本文件;查看脚本(返回空);编辑脚本里面的指令;查看脚本

在shell脚本中,#开头的行是代表注释

运行shell脚本

注意点:运行shell脚本的方式有两种

①以bash filename 直接在命令行指定解释器执行

②以./filename运行,不过会提示权限不足,这时候需要另外一条指chmod +x filename,这条指令的意思是赋予脚本文件权限,以标准方式执行脚本。

Shell脚本基础_第4张图片

1.$()和反引号的作用一样,用来引用系统命令

2.$用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值

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

Shell脚本基础_第5张图片

在命令终端提示用户输入一些什么内容,然后在用户输入完内容后,会打印刚刚用户输入的内容,所以这里要用到read这个命令。

输入命令:read 命令。一般情况下,按下enter键,停止输入。

常用参数如下:

-p 显示提示信息

-s 不显示用户输入的内容,如密码

-t 设定等待时间,超过等待时间后自动跳过,以秒为单位

Shell脚本基础_第6张图片

在输入pas的时候不会显示内容,因为脚本中写到了-s,它会不显示用户输入的内容,只在最后显示。read命令一般结合输出命令echo来使用。

输出命令echo

echo的作用:输出字符串 

格式 :echo"字符串内容"

第一个指令上有空格,可是打印出来的确实没有空格的,

这是因为系统默认空格是多打了的,不打印出来。

而加了双引号之后,输入的内容则会全部打印出来。

Shell脚本基础_第7张图片

命令 > 文件

将标准输出重定向到一个文件中(清空原有文件的数据)

命令 >> 文件

将标准输出重定向到一个文件中(追加到原有内容的后面)

括号

{}

shell中的大括号(也叫花括号) "{}"的用法:

如果想要的结果为123df而不是456的话,就要加上{},目的是为了明确$的范围

Shell脚本基础_第8张图片

{}里面包含着集合,如果要输出多个集合的话,则集合的首尾中间要加上..

例如:要输出1-10txt的集合,则命令为echo {1..10}.txt

()

shell中的小括号()的用法放置命令,格式$(hostname),如同`hostname` 。

解释器遇到这种格式,会先执行命令,得到结果再输出。

(())

双重小括号(())

算术运算 $((1+2*3))

和我们传统认识上的加减乘除用的小括号不同,这里一定要双重小括号 

Shell脚本基础_第9张图片

你可能感兴趣的:(bash,开发语言)