脚本传参
当我们运行脚本的时候,./shell.sh 10 20
其实10和20 已经传递进去了,我们可以在脚本中用$0, $1,$2获得参数,以此往下类推获得传入的更多参数。在脚本中输出”$#”(美元符和#之间没有空格)就可以输出传入的参数个数,”$#”为内建变量。可以使用$@遍历所有参数。
for param in “$@”
do
echo “param”
done
输入输出重定向
- 0 STDIN 标准输入
- 1 STDOUT 标准输出到屏幕上
- 2 STDERR 标准错误输出
代表输出重定向,把cc写入到test6文件,>>把xx追加写入到test6文件里
file = test6
echo “cc”> $file
echo “xx” >> $file
&>标准重定向,输出到test7不再输出到屏幕上,在运行时指定
./linux.sh &> test7
或者
./linux.sh 1> test7
在脚本中指定,exec输出重定向,不再输出到屏幕上,输出到test文件中,1>当遇到错误时还会输出到屏幕上,如果想把错误也输出到一个文件中,可以用2>把错误重定向到一个文件
exec 1>test
exec 2>test2
echo “cc”
echo “yy”
函数
格式
小括号和中括号之间一定要有一个空格
function myfun() {
echo“东方大道”
}
myfun
另一种写法,中括号写到另一行
function myfun
{
echo “sds”
}
myfun
函数传参
function myfun
{
echo $1
echo $2
}
myfun 10 80
返回值$[ $1+$2]
function myfun
{
echo $[ $1+$2]
}
value=$(myfun 10 90)
echo “value:$value”
局部变量和全局变量
export声明的变量为全局变量,多个脚本都可以使用,其他脚本引用这个脚本的时候可以使用这个全局变量,引入另一个脚本的方式为source 路径+文件名,source ./linux.sh,
source的另一个快捷方式为点 . ./linux.sh=source ./linux.sh
/#全局变量
export ndk=20
/#局部变量
nd=10
传递多个参数,我们想每行输入一个参数,可以空格加\换行,\后一定不要有空格
function build
{
./linux.sh - -dhad=aa \
–dsdsd=a \
–asds=aad
}