Shell(命令行解释器)
作为命令语言,它交互式地解释和执行用户输入的命令;
作为程序设计语言,它定义了各种变量和参数,以及控制结构,包括循环和分支。
一般的linux系统都将bash作为默认的shell
shell程序设计:
(1)shell基本语法:输入输出重定向 < >
(2)shell变量和参数:
- shell定义的环境变量
- 用户定义的变量:变量名=变量值 ,变量的取值都是一个字符串 (注意:定义变量时,变量名前不加 $ ,在引用变量内容时在变量前加 $ ,再给变量赋值时,等号两边一定不能加空格,若变量本身包含空格,则整个字符串都要用双引号括起来,一般变量名用大写字母表示)
- 位置参数:位置参数之间用空格分隔,shell取第一个位置参数替换程序中的 $1 ,以此类推,不过 $0 是当前shell程序的文件名
- 预定义变量: $#:位置参数的数量, $*:所有位置参数的内容
- 参数置换的变量
输入./1.sh 1 2 3运行
运行结果;
注意点:程序开头一定要写成#!/bin/bash,运行之前修改权限 chmod 777 1.sh,运行时加上位置参数
文件名后缀 .sh $后面要用数字来代表参数,不能是字母
(3)shell程序设计的流程控制:
-
- test测试命令(数值、字符、文件)
(1) 数值测试:
-eq:等于则为真
-ne:不等于则为真
-gt:大于则为真
-ge:大于等于则为真
-lt:小于则为真
-le:小于等于则为真
(2) 字符串测试:
=:等于则为真
!=:不相等则为真
(3)文件测试 :
-e 文件名:如果文件存在则为真
-d 文件名:如果文件存在且为目录则为真
-f 文件名:如果文件存在且为普通文件则为真
- if条件语句
注意点:【 -f $1 】括号里面两个参数外的三个空格一定要加
- test测试命令(数值、字符、文件)
-
for循环
例题:
注意:h=‘date +%H’ 用来显示当前时间的小时部分