函数
shell 可以用户定义函数,并且能随便调用
定义格式:
[ function ] funname [()]
{
action;
[return int;]
}
1.可以带 function fun()定义,也可以直接 fun()定义,不带任何参数
2.参数返回,可以加 return 返回,不加 return时以最后一条命令的执行结果作为返回值。
3.return 后跟数值,通过 echo $? 获取return值
注意:所有函数必须在使用前定义。
函数参数
函数调用直接使用函数名字即可,调用函数时可以传递参数,在函数内通过 $ n 的形式来获取参数值,例如 &1 表示第一个参数;当n>=10时,使用$ {n}来获取
funWithParam(){
echo "第一个参数为 $1"
echo "第十个参数为 ${10} !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73
输入/输出重定向
命令 | 描述 |
---|---|
command > file | 将输出重定向到 file |
command < file | 将输入重定向到 file |
command >> file | 将输出以追加的方式重定向到 file |
n > file | 将文件描述符为 n 的文件重定向到 file |
n >> file | 将文件描述符为 n 的文件以追加的方式重定向到 file |
n >& m | 将输出文件 m 和 n 合并 |
n <& m | 将输入文件 m 和 n 合并 |
<< tag | 将开始标记 tag和结束标记 tag之间的内容作为输入 |
文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)
here document
一种特殊的重定向方式,用来将输入重定向一个交互式 Shell脚本或程序
//将 document作为输入传递给 command
command << delimiter
document
delimiter //这里的delimiter要顶格写,前后都不能有任何字符
/dev/null 文件
如果希望执行某个命令,不在屏幕上显示输出结果,可以将输出重定向到 /dev/null command > /dev/null
/dev/null 是一个特殊文件,写入到里面的内容都会被丢弃
将命令输出重定向到它,可以起到“禁止输出”的效果
command > /dev/null 2>&1 //屏蔽stdout和stderr
文件包含
. file
或
source file
被包含的文件不需要可执行权限