1.脚本类型:
(1)编译型:xx.c -> 编译 ->main.exe(运行效率高)
(2)解释型:需要解释器解释执行,但是开发简单、
2.(1)case语句:
case variable in
pattern [ | pattern ] ...)statements;;
pattern [ | pattern ] ...)statements;;
...
esac
(2)函数
传参,定义变量,函数返回值
如何给脚本传参
加local表示只在本地函数中生效,为局部变量
local str ="hello"
加unset表示定义的变量失效
unset str
(3)脚本调用脚本
如何传参?
① 加export变成环境变量,变成环境变量之后的子进程中都会继承
export MYSTR
a和b脚本
直接执行会产生新的解释器
加点、空格执行脚本代表要把脚本放到解释器中去执行,用的是同一个解释器
. ./b.sh
点、空格+直接路径
. /home/maria/c215/day1_12/b.sh
-f可以判断文件是否存在
-f ~/.bash
//alias定义别名
alias xx=`ls -CF`
vi .bashrc
(4)c程序调用脚本
b.sh
1 #!/usr/bin/bash
2
3 echo "b.sh run pid=$$"
4 echo "b.sh argc=$#"
5
6 for arg in $*
7 do
8 echo "arg=$arg"
9 shift
10 done
~
main.c
1 #include<stdio.h>
2 #include<stdlib.h>
3 #include<unistd.h>
4
5 int main()
6 {
7 printf("main pid =%d\n",getpid());
8 execl("./b.sh","aa","hello","123",(char*)0);
9 perror("execl err");
10 }
用main.c调用b.sh
(5)awk命令:对文件内容进行过滤和提取,生成报文,读取原文件,呈现用户
awk -F `{print $l}` file > file1
file为原文件,file1为提取后的
(6)sed:流式文本编辑器,对文件进行修改