shell不需要编译可以直接运行,shell脚本是一堆命令的集合。
1.创建shell脚本
(1)创建.sh文件。
(2)编辑文件,在文件的开头需要添加#!/bin/bash,告诉计算机使用哪个版本的shell来解析代码。
(3)给用户添加执行权限,可以使用chmod命令(chmod u+x);
(4)执行文件./文件.sh.。
2.shell变量
在shell中允许用户建立 变量存储类型,不支持数据类型,自定义变量规则与C语言中相似。
(1)由数字,字母下划线组成,
(2)首字母不能为数字。
(3)shell中的变量一般用大写表示(可以使用小写)。
在shell中任何赋给变量的值都被shell解释为一串字符。
在shell中赋值时,等号两边不能留空格。
取用变量时要在变量名前加上$。
2.1位置参数
#!/bin/bash
echo "0..........$0"
echo "1..........$1"
echo "2..........$2"
echo "3..........$3"
echo "4..........$4"
echo "5..........$5"
echo "6..........$6"
echo "7..........$7"
echo "8..........$8"
echo "9..........$9"
echo "10..........${10}"
在执行上面的shell时,$0会读取脚本文件名,后面的$n会读取命令行参数。
2.3.预定义变量
$# 包含命令行参数的个数(不包含可执行文件$0),
$@ $* 包含所有的命令行参数($1,$2......)。
$? 包含前一个命令的退出状态,正常退出返回0,反之为非0。
$$ 包含正在执行进程的id号。
3.结构语句
1)条件测试语句
if [表达式]
then 命令
fi
双分支语句
if [表达式]
then 语句1
else
语句2
fi
多分支语句
if [表达式1]
then
语句1
elif[表达式2]
then
语句2
.......
elif[表达式n]
then
语句n
else
语句n+1
fi
2)多路分支语句
case 字符串 in
模式1)
命令表1
;;
模式2)
命令表2
;;
.....
模式n)
命令表n
;;
*)
;;
esac
3)for语句
for 变量名 in 单词表
do
语句
done
4)while语句
while [表达式]
do
语句
done