Shell
shell是一个用C语言编写的程序,是一个可以编写程序的程序
shell脚本(shell script)是一种由shell编写的脚本程序
shell和shell script不是一个概念
“shell编程” 都是指 shell 脚本编程,不是指开发 shell 自身
Shell 编程跟 java、php 编程⼀样,只要有⼀个能编写代码的文本编辑器和⼀个能解释执行的脚本解释器就可以了
1.Linux 的 Shell 程序种类
常见的有:
- Bourne Shell(/usr/bin/sh或/bin/sh)
- Bourne Again Shell(/bin/bash)
- C Shell(/usr/bin/csh)
- K Shell(/usr/bin/ksh)
- Shell for Root(/sbin/sh)
2.Shell的编写流程
- 编写Shell脚本
例:编辑一个脚本定义name为dd,输出name
【vi test.sh
#!/bin/bash(#!告诉系统这个脚本需要用什么解释器来执行,也就是使用哪种shell)
name=dd
echo name】 - 赋予可以执行的权限
chmod +x ./test.sh - 执行,调试
sh ./test.sh(没有执行权限就不能执行)=. test.sh(没有执行权限也可以执行)
3.编写shell脚本常用的关键字
- echo:打印文字到屏幕
- exec:执行另一个脚本(调用)
- read:读标准输入
- expr:对整数型变量进行运算
- test:用于测试变量是否相等,是否为空、文件类型等
4.Shell的变量
- 用户自定义变量
unset 删除变量
readonly 标记为只读变量
export 指定为全局变量 - 预定义变量
$0:脚本文件名
$1-9: 第 1-9 个命令行参数名
$# :命令行参数个数
$@ :所有命令行参数
$* :所有命令行参数
$? :前⼀个命令的退出状态,可⽤于获取函数返回值
$$ :执行的进程 ID - 环境变量
【vi test_env.sh
#!/bin/bash
echo “print env”
echo $HOME
echo $PATH
echo $TERM
echo $PWD
echo $UID】
5.shell运算
- 【+ - * /】 加减乘除
- 【%】 余数
- 【$ | ! 】 和、或、非
6.整数比较
- 判断大小
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
程序中“=”表示赋值,“==”表示判断的等于。但是不等于用“!=”表示 - 编写程序
【read -t 10 -p “input:” x】看到"print:"十秒内输入x值
for循环:例: for i in {1…10}
do
echo $i
done
输出1 2 3 4 5 6 7 8 9 10,相当于执行十次
while循环:例: i=1
while (( $i < 10 ))
do
echo (( i + 1 ))
done
输出1 2 3 4 5 6 7 8 9
7.数组
数组是有序的元素数列
[数组名]若将有限个类型相同的变量的集合命名,那么这个名称为数组名
组成数组的各个变量成为分量,也叫数组的元素
输出数组某分量写法:【echo ${数组名[分量序号]} 】
例:x=1
echo $x
days=([0]=Sun [1]=Mon [2]=Tue [3]=Wed [4]=Thu [5]=Fir [6]=Sat)
echo $ {days[$x]}
echo ${days[4]}