【学习笔记】基于android envsetup.sh脚本的 shell 学习

#!/bin/bash

# 函数功能:打印帮助信息
# 知识点:<
# function 是用来定义函数的:wq

function helplus()
{
cat <--- 打印函数功能说明;
	2、for1 --- for 循环
EOF
}

function for1()
{
	# local T 定义局部变量,变量只在函数内部有效
	# 反引号"`pwd`" 或者 $(pwd) 在当前目录小执行 pwd 命令
	# '=' 两侧不能有空格
	local T=`pwd`
	local i
	local A=""
<for 循环格式:
	for 变量名 in 取值列表
	do
		命令
	done
或者
	for 变量名 in 取值列表;do 命令;done

	以空格或者回车为界循环遍历文件 star.sh 内容	
	A="$A $i" 将遍历的内容拼接到变量 A
EOF
	for i in `cat $T/star.sh`; do
		 A="$A $i"
	done

	echo "$A"

}

<cat $T/star.sh | sed -n '/^[[:blank:]]*function/p'
查找 star.sh 文件中以空格或者制表符+function 开头的行,并打印
EOF
function for2()
{
	local T=`pwd`
	local i
	local A=""

	for i in `cat $T/star.sh | sed -n '/^[[:blank:]]*function/p'`
	do
		A="$A $i"
	done
	echo $A
}

<cat $T/star.sh | sed -n '/^[[:blank:]]*function /s/function \([a-z_1-9]*\).*/\1/p'
查找 star.sh 文件中以空格或者制表符+function 开头的行,替换成 function 后面的部分
sort  --- 排序
uniq  --- 去重

函数功能:
查找文件中所有的函数,并将函数名拼接到一起输出
EOF
function for3()
{
	local T=`pwd`
	local i
	local A=""

	for i in `cat $T/star.sh | sed -n '/^[[:blank:]]*function /s/function \([a-z_1-9]*\).*/\1/p' | sort | uniq`
	do
		A="$A $i"
	done
	echo $A
}

# helplus
# for1
# for2
for3

你可能感兴趣的:(shell,android)