Bash常用语法
# 变量
i=123
echo $i
echo ${i}
1
2
3
2
3
# 循环
for((i=0;i<10;i++))
do
echo $i
done
0
1
2
...
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 数学运算
- 代码中的 [] 执行基本的算数运算
#!/bin/bash
a=5
b=6
result=$[a+b] # 注意等号两边不能有空格
echo "result 为: $result"
1
2
3
4
5
6
7
2
3
4
5
6
7
- let i=$i+1, let后的语句不能有空格.
i=1
let i=$i+1
echo $i
2
1
2
3
4
5
2
3
4
5
# awk
awk功能是分割字符串,
一个常用例子是以#为分割符,获取第二部分内容.
str=123#456
echo str|awk -F "#" '{print $2}'
456
1
2
3
4
2
3
4
其中|是管道,管道可以使我们多个命令一起使用,他的作用是将前一个命令的标准输出作为后一个命令的标准输入.
# 数值判断
num=12
if [ $num -lt 10 ];then
echo $num"<10"
elif [ $num -lt 13 ];then
echo "10<="$num"<13"
else
echo $num">=13"
fi
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# grep
grep是逐行查找字符串的工具,经常使用正则表达式来匹配字符串.也可以和awk联合使用筛选字符串.
示例:
# 从abc.txt中使用正则比表达式逐行匹配包含数字123的行,符合条件的输出到屏幕
grep -iE ".*123" abc.txt
# 从dir目录下递归查找符合条件的行并输出对应的行号和内容
grep -rnE ".*123" dir
-i 忽略大小写
-E 使用正则表达式匹配
-r 递归匹配
-n 显示行号
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# bash脚本传参
echo "Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";
1
2
3
4
5
2
3
4
5
参数处理 | 说明 |
---|---|
$# | 传递到脚本的参数个数 |
$* | 以一个单字符串显示所有向脚本传递的参数。 如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 |
$$ | 脚本运行的当前进程ID号 |
$! | 后台运行的最后一个进程的ID号 |
$@ | 与$*相同,但是使用时加引号,并在引号中返回每个参数。 如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 |
$- | 显示Shell使用的当前选项,与set命令 (opens new window) 功能相同。 |
$? | 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。 |
编辑 (opens new window)
上次更新: 2023/02/16, 22:15:06
- 01
- Linux系统移植(五)--- 制作、烧录镜像并启动Linux02-05
- 03
- Linux系统移植(三)--- Linux kernel移植02-05