Sell / Bush 脚本
Linux系统中的Shell 是一个特殊的应用程序,它介于操作系统内核与用户之间,充当一个”命令解释器“的角色,负责接收用户输入的操作指令(命令)并进行解释,将需要执行的操作传递给内核执行,并输出结果。 它是用户使用 Linux 的桥梁。
Shell 既是一种命令语言,又是一种程序设计语言。
一些常见的sell
bash:基于GUN的框架下发展的shell
sh:已经被bash替换
nologin:让用户无法登录
bash(/bin/bash)是目前大多数 Linux 版本采用的默认 shell。
格式
文件格式以 .sh 结尾
一般会开头申明解释器:
如: “#!/bin/bash”,表示此行以下的代码语句是通过/bin/bash程序来执行。还有其他类型的解释器,比如 #/usr/bin/python、#!/usr/bin/expect 。
- 注释信息
以“#”开头的语句表示为注释信息,被注释的语句在脚本运行时不会被执行。
set -e //在开头设置 遇到错误 是停止运行 此脚本 一般不建议运行
脚本执行逻辑:
-
顺序执行:程序按从上到下顺序执行
-
选择执行:程序执行过程中,根据条件的不同,进行选择不同分支继续执行
-
循环执行:程序执行过程中需要重复执行多次某段语句
即使中间 有错误 也会继续往后执行
执行脚本方式
注:需要 执行权限 才能使用
-
将文件存储在 $PATH 配置路径中 程序可以直接使用 文件名执行
-
以 绝对/相对 路径 启动
-
sell 程序 + 脚本
-
source 和 .
source 脚本
source 脚本路径
调试:
注:建议使用 绝对路径
bash -x 文件名/文件路径 //模拟执行
bash -n 文件名/文件路径 //调试脚本 检测语法错误
变量格式:
变量名=路径 或 字符
变量名=$ ( 指令 )
特殊变量:
$@ //它展示了所有传递给脚本或函数的参数,每个参数都以单独的引号括起来,保留了参数中的空白
$* //它展示了所有传递给脚本或函数的参数,并将它们当作一个单词来处理(即忽略其中的空白字符)
$? //它保存了上一个命令的退出状态码(返回值),如果命令执行成功,它的值为0,否则为非零值,非零值可能表示发生了错误或者异常
$# //它包含传递给脚本或函数的参数的数量