文章目录
SHELL编程入门
Linux系统分层如下:用户层、应用层、Shell层、内核层、硬件层
Shell是一个用c语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言
Shell是指一种应用程序,这个程序提供了一个界面,用户通过这个界面访问操作系统的内核服务
Shell编程基础
我们可以使用任意一种文本编辑器编写Shell脚本(vi、gedit等),但是它必须以以下内容开始:
#!/bin/bash(推荐使用)
#!是特殊符号,用来表示shell脚本程序
变量赋值和引用
在Shell编程中,使用变量无需事先声明,同时变量的命令规则如下:
- 首个字符必须为字母
- 中间不能有空格,但是可以用‘_’
- 不能使用标点
- 不能使用bash关键字
变量赋值语法:变量名=值(不能有空格)
变量的引用:’$’,示例如下:
#!/bin/bash
a="Hello World"
echo "a is:" $a
有时变量名和文本会混淆,可以使用{变量名},以区别变量和文本
num=1
echo "This is the $numnd" #num nd两个会出现混淆
#应更改为
echo "This is the ${num}nd"
shell默认赋值类型为字符串
Shell流程控制
if语句
“if”表达式如果条件为真,就会执行then后的部分:
if ...;then
...
elif...;then
...
else
...
fi
如果进行条件判断,需要使用"[ ]"(if后有空格,且判断语句也需要带上空格)
#!/bin/bash
if [ ${SHELL} = "/bin/bash" ]; then
echo "OK"
fi
case语句
case表达式可以用来匹配一个给定的字符串,而不是数字
case ... in
...)
do something here ;;
...)
do something here ;;
esac
程序实例如下:
#!/bin/bash
case $1 in
"1")
echo "This is 1" ;;
"2")
echo "This is 2" ;;
esac
*注意: 1 是 特 殊 符 号 , 代 表 传 递 给 该 脚 本 的 第 一 个 参 数 值 , 类 似 于 c 中 的 a r g v [ 1 ] , 而 1是特殊符号,代表传递给该脚本的第一个参数值,类似于c中的argv[1],而 1是特殊符号,代表传递给该脚本的第一个参数值,类似于c中的argv[1],而表示所有参数
select语句
select表达式是bash中的一种拓展应用,擅长于交互式场景,用户可以在一组值中进行选择
select var in ...;do
break;
done
...now $var can be used...
select实例如下:
#!/bin/bash
echo "What's your select?"
select var in "A.---" "B.----" "C.----" "D.----";do
break;
done
echo "Your select is ${var}"
注意:每个选项之间有空格
while/for循环
while循环
while...;do
...
done
for循环
for var in ...;do
...
done
for循环实例:
#!/bin/bash
for var in a b c ; do
echo "$var"
done
脚本运行将会输出a、b、c
Shell中的特殊符号
- “”可以防止变量名代替字符串,‘’则更加严格
echo $SHELL echo "$SHELL" echo '$SHELL' #程序运行结果如下: /bin/bash /bin/bash $SHELL
- Here Document
当需要将几行文本信息传递给一个命令时,就可以使用Here Document
command << text **** **** text(顶格写)
例如:
#!/bin/bash cat << text 1111111 2222222 3333333 text
脚本运行之后将输出两个text中间的内容
Shell函数
函数定义
function function_name()
{
...
}
#函数调用
function_name
函数使用实例如下:
#!/bin/bash
function hello()
{
echo "Hello World"
}
hello