shell常用语法和技巧
目录
1,bash 开头语法
#! /bin/bash
2,注释
单行注释使用 #号
例如:
#这是一个注释
多行注释使用 : <<! 内容 !
例如:
<<!
hello
nihao
!
3.变量
声明变量注意事项:
- 等于号两边不能有空格
- 如果变量不存在值为空字符串
name1="lihua"
name2 = 'lihua'
name1正确,name2错误
使用变量:
- $加变量
- ${变量}
注意:单引号里面无法使用变量,双引号可以
name='xiaoming'
echo $name
echo ${name}
echo '${name}'
echo "${name}"
4.字符串截取
获取字符串长度
name='xiaoming'
echo ${#name}
结果是8
截取一段字符串
name='lihua'
echo ${name:0:2}
结果是li
意思是从索引为0的开始截取2个
5,$符号使用技巧
使用变量
- $变量
- ${变量}
获取参数
- $# : 参数的个数
- $1 : 取第一个参数
- $2 : 与$1基本一样
- $* : 是传入的所有参数以空格为分隔符组成的字符串如$1 $2 $3等等
- $@ : 与$*类似 是"$1" "$2"形式的字符串
6.数组相关
数组与java相似
- 用()表示
- 元素分割符为空格
- 取数用 数组名称[索引] 的形式
- 中括号中方@或者*表示取整个数组
- ${#数组名称[@]}表示数据长度
例如:
array=(1 2 3 4 5)
# 取数
echo array[0]
# 数组整个
echo array[@]
# 数组长度
echo ${array[*]}
7,if使用技巧
语法;
if [ 条件 ]
then
语句
elif [ 条件 ]
then
语句
else
语句
fi
注意事项:
- []中每一项用空格隔开包括[ 和 ]
- fi是if的结束标识
常用条件判断参数:
数字判断:
参数 | 意义 |
---|---|
eq | 等于 |
ne | 不等于 |
gt | 大于 |
lt | 小于 |
ge | 大于等于 |
le | 小于等于 |
字符串判断:
参数 | 意义 |
---|---|
-z | 如果是空返回true |
-n | 如果是非空返回true |
== | 等于 |
!= | 不等于 |
8,case基本语法
a=值
case $a in
1)
echo ${a} = 值1
;;
2)
echo ${a} = 值2
;;
3)
echo ${a} = 值3
;;
*)
echo ${a} = 其他
;;
esac
9,循环
for:
in后面值用空格隔开
for 变量 in 值1 值2 值3
do
语句
done
与java类似
for ((i=1;i<10;i++))
do
语句
done
while:
while 判断条件
do
语句
done
until:
until与while相反
until 判断条件
do
语句
done
注意:
-
break 跳出当前一层循环,但不能跳出
case
,case
属于条件语句 -
continue 跳出当前循环
- exit 退出
10.特殊符号(重定向,管道)
重定向:
- > 将左边结果插入右边文件中,并覆盖原有文件
- >> 将左边结果插入右边文件中,不覆盖原有文件追加在原有文件后面
管道符:
- || 将左边结果当做条件提供给右边
- 通常与gred联合使用