【shell脚本】入门篇(一)

Shell的作⽤是解释执行用户的命令,用户输⼊⼀条命令,Shell就解释执行⼀条,这种⽅式称为交互式(Interactive),Shell还有⼀种执行命令的方式称为批处理(Batch),⽤户事先写⼀ 个Shell脚本(Script),其中有很多条命令,让Shell⼀次把这些命令执⾏完,⽽不必⼀条⼀条地敲命令。 Shell脚本和编程语⾔很相似,也有变量和流程控制语句,但Shell脚本是解释执⾏的,不需要编译,Shell程序从脚本中⼀⾏⼀⾏读取并执⾏这些命令,相当于⼀个用户把脚本中的命令一行一行敲到Shell提示符下执⾏。

首先,本文先介绍shell中的符号使用。

shell变量全由大写字母和下划线组成 

“=”不可以有空格 会被shell解释成命令和命令行参数

shell变量有环境变量+本地变量环境变量:可以由shell传递给fork出来的子进程可以使用printenv显示当前shell的环境变量

本地变量:只存在于当前shell进程 可以使用set显示当前shell所有变量(包括本地变量和环境变量)。

由于本地变量仅存在于当前shell 可以使用export将其导出为环境变量

导出和定义环境变量可以一步完成  

export VARNAME=value

也可以分为两步: 

VARNAME=value 

export VARNAME

环境变量是任何进程都特有的,而本地变量是shell特有的变量和字符混淆使用



shell的赋值是默认赋值
shell变量shell变量不需要先定义后使用,shell变量内容是字符串,如果获取未定义的变量 内容为空字符串
由于shell中默认为字符串赋值


因此这里不可直接算数相加 后续在介绍

文件名代换(通配符)

通配符 * :匹配0个或多个字符



?:匹配一个任意字符
[若干个字符]:匹配括号中任意一个字符的出现


命令代换:`或$()
由反引号括起来的也是一条命令,shell先执行该命令,然后将输出结果立刻代换到当前命令行中




还可以用于算数代换:$(())
用于算数计算,$(())中的shell变量取值将转换成整数
$(())中只能进行四则运算和()运算,且只能进行整数运算



转义字符\
与C语言类似, 在shell中 \也被用作转义字符,用于去除紧跟后面的单个字符的特殊意义(不包括回车),也就是说在\后的字符 取字面值
例: $ 和 空格 均属于特殊字符 创建一个文件名包含这两个字符的文件




当然在删除包含特殊符号的文件时,也是需要转义的 


在这些符号中,有一个符号比较特殊‘-’,因为Unix命令很多都把‘-’作为命令参数开头,如果想把‘-’作为文件名,就算加上\也是不行的,如果一定用‘-’可以有两种方法 


删除时同上。

\还有一种用法,在\后敲回车表示续行


单引号

在shell脚本中的单引号和双引号一样都是字符串的界定符而不是字符的界定符。
单引号用于保持引号内所有字符的字面值,即便是引号内的\和回车也不例外,但是字符串中不能出现单引号。如果没有配对好引号就输出回车,shell会提示给出续行符要求引号配对。

【shell脚本】入门篇(一)_第1张图片

双引号

双引号用于保持引号内所有字符的字面值(包括回车),但以下情况除外:

$加变量名可以取变量的值
反引号仍表示命令替换
\$表示$的字面值

\`表示`的字面值(反引号)
\" 表示 " 的字面值
\\表示\的字面值 

除了以上情况外,在其他字符前面的\无特殊含义,只表示字面值:
【shell脚本】入门篇(一)_第2张图片


【shell脚本】入门篇(一)_第3张图片

你可能感兴趣的:(Linux,shell)