Shell script(Shell脚本)的工作方式有两种:
①交互式(Interactive):用户每输入一条命令,然后Shell立即执行一次;
②批处理(Batch):由用户实现编写好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命令。
查看系统可用的shell(/etc/shells文件)
~ # cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
~ #
Linux系统默认的命令行终端解释器为Bash
~ # echo $SHELL
/bin/sh
~ #
Shell脚本文件的格式:
- 第一行(一般必须写明):指定脚本使用的shell(若不写明也不影响脚本的执行,系统会自动以sh解析脚本)。"#!/bin/bash"声明文件内的语法使用bash的语法,当这个程序被执行时,加载bash的相关环境配置文件(一般是non-login shell中的~/.bashrc文件)。
- 第二部分的注释(可写):程序内容的说明。shell脚本中,井号#用作批注(除第一行的"#!"外),shell不会解释以#开头的行(除第一行bash声明外)。
- 主要环境变量的声明(可写)
- 脚本的程序部分。
- 程序执行结束,回传一个数值给系统告知执行的结果(可写。默认命令执行成功返回数值0)。
sh -x:实现shell脚本逐条语句的跟踪
sh -n:不执行脚本,仅进行语法的检查
Shell中运行的每个命令都使用退出状态码告诉shell它运行完毕。退出状态码:0-255的整数值,在命令结束运行时由命令传给shell。变量$?用于保存上个已执行命令的退出状态码。退出状态码可配合exit命令使用。
- $0:当前Shell脚本程序的名称;
- $#:参数的个数;
- $*:所有位置的参数值;
- $?:上一条命令的执行返回值;
- $1、$2、$3……:第N个位置的参数值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。