Shell脚本编程入门

Shell脚本

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Shell 脚本(shell script),是一种为 shell 编写的脚本程序。
Bash 是大多数Linux 系统默认的 Shell。在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为 #!/bin/bash
#! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。

传递参数

Shell 脚本获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……

另外,还有几个特殊字符用来处理参数:

参数处理 说明
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数。如"$*“用「”」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$$ 脚本运行的当前进程ID号
$! 后台运行的最后一个进程的ID号
$@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。如"$@“用「”」括起来的情况、以"$1" “$2” … “$n” 的形式输出所有参数。
$- 显示Shell使用的当前选项,与set命令功能相同。
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

输入/输出重定向

默认情况下,标准输入和标准输出都是终端。

重定向命令列表如下:

命令 说明
command > file 将输出重定向到 file。
command < file 将输入重定向到 file。
command >> file 将输出以追加的方式重定向到 file。
n > file 将文件描述符为 n 的文件重定向到 file。
n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m 将输出文件 m 和 n 合并。
n <& m 将输入文件 m 和 n 合并。
<< tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入。

注意:文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。

多命令执行符

多命令格式 作用
顺序执行:命令1;命令2 多个命令顺序执行,命令之间无任何逻辑关系
逻辑与:命令1&&命令2 逻辑与:当命令1正确执行后,命令2才会正确执行,否则命令2不会执行
逻辑或:命令1||命令2 逻辑或:当命令1不正确执行后,命令2才会正确执行,否则命令2不会执行
管道符:命令1| 命令2 命令1的正确输出作为命令2的操作对象

通配符

通配符 作用
? 匹配一个任意字符
* 匹配0个或多个任意字符,也就是可以匹配任何内容
[] 匹配括号中任意一个字符
[-] 匹配括号中任意一个字符,“-”代表范围
[^] 逻辑非,表示匹配不是括号内的一个字符

Bash中其他特殊符号

符号 作用
‘’ 单引号,在单引号中所有的特殊符号,如“$”和“`”(反引号)都无特殊含义
“” 双引号,在双引号中特殊符号都无特殊含义,但“$”、“`”(反引号)和“\”是例外,拥有“调用变量值”,“引用命令”和“转义符”的特殊含义
反引号:反引号括起来的内容是系统命令,在Bash中先会执行它和()
$() 和反引号作用相同,用来引用系统命令
# 在shell脚本中,#开头的行代表注释
$ 用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到
\ 转义符,跟在\之后的特殊字符将失去特殊含义,变为普通字符

猜你喜欢

转载自blog.csdn.net/weixin_44256803/article/details/88745372