shell语言编程学习教程https://www.runoob.com/linux/linux-shell.html
变量
- 变量使用时候,需要加上
$
符号, 例如${变量名}
- 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的,一般使用双引号
- 变量赋值时候,变量名和等号之间不能有空格,例如
a="11",不能写成a = "11"
- 数组,元素之间不用都逗号相隔,例如
a=("we" "33"), 不能写成a=("we", "33")
- shell中反引号
` `
相当于python的eval()
函数功能 - shell语言注释格式,单行注释是
#
, 多行注释是:<<! .... !
- shell打印输出的关键词有
echo printf
- shell读取用户输入的字符的关键词有
read
例如read num(变量名)
传参
- shell文件执行,和函数传递参数方式都是一样的
-
$1, $2,$3
分别代表是传递的参数。 例如: 文件执行传参bash test.sh w e 对应参数 $1-->w, $2-->e
函数传参fun w e 对应参数$1-->w, $2-->e
-
$@
与$*
,都是获取除了文件名之外的所有参数,区别在于$@
是可以遍历的 -
$?
显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。 -
$0
获取是当前执行的文件名
运算符
- 算术运算符格式:
expr 4 + 5
表达式和运算符之间要有空格,shell使用关键词expr
进行运算, 乘法运算需要加转义符。例如4+5
是错误的,必须写成4 + 5
- 关系运算符格式:
[ 3 -ge 4 ]
括号与数值之间要有空格 - 逻辑运算符:
||
或 ,&&
与
函数
- 函数调用,不同于其他程序语言需要括号,shell语言使用函数名调用即可
- 函数有返回值时候,要用
$?
去获取函数的返回值,存储到一个变量里 - 函数传参数,在函数里使用
$1, $2, $3
函数调用时候,根据对应的位置传。例如函数名fun 参数1 参数2 参数3
流程控制
以下的语法格式可以写成一行,使用;
分号隔开
- 条件语句
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi
- 循环语句
# for循环
for var in item1
do
command1
done
# while循环
while condition
do
command1
done
导入
- 类似其他高级语言,都有导入其他模块的功能,shell也有类似功能,将一个sh文件导入另一个sh文件运行
test1.sh文件
#!/bin/bash
url="http://www.baidu.com"
test2.sh文件
#!/bin/bash
#使用 . 号来引用test1.sh 文件
. ./test1.sh
# 或者使用以下包含文件代码
# source ./test1.sh
echo "$url"