Linux中shell编程需要避免的坑之shell语法篇(四)
来源:互联网 发布:淘宝卖衣服规则 编辑:程序博客网 时间:2024/05/18 19:43
shell函数
1.带有返回值的函数,如下:
fun (){
a=10
b=20
echo "测试例子中的两个参数分别是$a 和 $b"
return $(($a+$b))
}
fun
echo "两数之和为 $? "
通过$?接收返回参数
注意:所有函数在使用前必须定义。这意味着必须将函数放在脚本开始部分,调用函数时候直接函数名调用即可。
2.传参函数,如下:
fun(){
echo "输出执行文件名$0"
echo "第一个参数$1"
echo "第二个参数$2"
echo "第三个参数$3"
}
fun 1 2 3
附注:当第十个参数时不能够$10去获取,当n>=10时,需要写成${10}。
shell的输入输出重定向
需要注意的是文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。
输出重定向示例
who > t.sh
结果:将命令who查出的信息输出到t.sh文件里面且会覆盖原有内容,若想末尾追加,使用>>操作符
输入重定向示例
从文件获取输入,读取内容
wc-l< t.sh
统计文本里面的行数,不携带任何其他信息,为什么这么说呢,因为单独执行 wc -l t.sh时会输出行数和文件名,而输入重定向仅仅输出读取的内容!!!!!!
二者结合的例子(从左往右执行)
命令 < inputFile > outputFile
从inputFile 里面读取内容输出到outFile里面
重定向深入讲解(理解就好,不过多解释了)
一般情况下,每个 Unix/Linux 命令运行时都会打开三个文件:
- 标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。
- 标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。
- 标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。
默认情况下,command > file 将 stdout 重定向到 file,command < file 将stdin 重定向到 file。
如果希望 stderr 重定向到 file,可以这样写:
$ command2> file
如果希望 stderr 追加到 file 文件末尾,可以这样写:
$ command2>> file
2 表示标准错误文件(stderr)。
如果希望将 stdout 和 stderr 合并后重定向到 file,可以这样写:
$ command> file2>&1或者$ command >> file2>&1
如果希望对 stdin 和 stdout 都重定向,可以这样写:
$ command< file1>file2
command 命令将 stdin 重定向到 file1,将 stdout 重定向到 file2。
shell文件包含
包含外部脚本可以封装一些公用的代码作为一个独立的文件。
语法
. filename# 注意点号(.)和文件名中间有一空格或source filename
示例:
创建t1.sh文件内容:
a=50
创建t2.sh文件的内容:
. ./t1.sh
#或者
#source ./t1.sh
echo "参数a等于 $a"
授予执行权限 chmod +X t2.sh
执行./t2.sh
总结:
前三篇的例子运行在deepin ubantu 15.3 妥妥的没问题,第四篇讲完后Linux shell的基本知识也就到此为止了,后续添加一些实际当中会用到的一些脚本!活学活用!持续更新......
先来几个shell脚本小栗子:
http://www.jb51.net/article/54488.htm
http://justcoding.iteye.com/blog/1943504
0 0
- Linux中shell编程需要避免的坑之shell语法篇(四)
- Linux中shell编程需要避免的坑之shell语法篇(一)
- Linux中shell编程需要避免的坑之shell语法篇(二)
- Linux中shell编程需要避免的坑之shell语法篇(三)
- Linux的Shell编程之shell基本语法
- Linux的Shell编程之shell基本语法
- Linux的Shell编程 Shell基本语法
- Shell编程语法之四:函数
- Linux的shell编程(四)
- linux shell编程(四)
- linux shell 编程(四)
- Linux Shell 编程语法
- Linux Shell 编程语法
- Linux Shell 编程语法
- Linux Shell 编程语法
- Linux Shell 编程语法
- LINUX之shell编程简明语法说明
- linux shell 编程之语法学习
- Linux CentOS MySQL 5.7.18 5.7.X安装教程
- 使用spring配合Junit进行单元测试的总结
- http请求 get post 方式
- Linux下passwd和shadow文件
- Android Messenger 简介
- Linux中shell编程需要避免的坑之shell语法篇(四)
- 修改App名称
- 51nod_1029 大数除法
- SrollView的内容发生变化时自动滚动的处理
- Heaters问题及解法
- 你想知道的关于JavaScript作用域的一切
- tomcat 设置会话超时
- Keepalived使用梳理
- 实习总结