shell 参数意义和重定向

摘要:
后台运行的最后一项工作的PID(进程ID)$_保存之前执行的命令的最后一个参数。$?)$$脚本自己的进程ID.LinuxShell环境支持输入和输出重定向。符号“<0、1和2”分别表示标准输入、标准输出和标准错误信息输出。它们可用于指定要重定向的标准输入或输出。.txt表示错误信息被输出到文件.txt。也可以在三个标准输入和输出之间实现重定向。
$1,$2,... 特定第几个参数, $0 表示当前执行的进程名,script 本身的名字,或者在正则表达式中表示整行输出
 
$# 命令行或者是位置参数的个数
 
$* 所有的位置参数,被作为一个单词.
 
$@ 与$*同义,但是每个参数都是一个独立的""引用字串,这就意味着参数被完整地传递
 
$- 传递给脚本的falg
 
$!   在后台运行的最后的工作的PID(进程ID).

$_   保存之前执行的命令的最后一个参数.

$?   函数或者脚本本身的退出状态,用于检查上一个命令,函数或者脚本执行是否正确。(0表示该命令正确执行,任何非0值表示命令出错。)

$$  脚本自身的进程ID.

Linux Shell 环境中支持输入输出重定向,用符号"<"和">"来表示。0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出,比如 2>a.txt 表示将错误信息输出到文件a.txt中。


同时,还可以在这三个标准输入输出之间实现重定向,比如将错误信息重定向到标准输出,可以用 2>&1来实现。


Linux下还有一个非凡的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。


假如想要正常输出和错误信息都不显示,则要把标准输出和标准错误都重定向到/dev/null, 例如:


# ls 1>/dev/null 2>/dev/null


还有一种做法是将错误重定向到标准输出,然后再重定向到 /dev/null,例如:


# ls >/dev/null 2>&1


注重:此处的顺序不能更改,否则达不到想要的效果,此时先将标准输出重定向到 /dev/null,然后将标准错误重定向到标准输出,由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null,于是一切静静静:-)


另外 :


make >& make_log


意思是把标准输出和错误输出都重定向, make>out 只重定向标准输出!!!!!


>log 表示把标准输出重新定向到文件log中

>& log 表示把标准输出和错误输出都定向到文件log中,相当于 >log 2>&1

免责声明:文章转载自《shell 参数意义和重定向》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇EncryptHelper加密对象-工具类标准控件的使用技巧与自绘控件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

请求内部转发与重定向区别

1.请求内部转发     使用:req.getRequestDispatcher("uri").forward(req, resp);       1、多个Servlet共享一个request对象(重点)     2、一次请求,当转发结束的时候也就是业务处理完毕的时候request对象会被销毁     3、地址栏不改变     注意在执行转发完毕后会...

JBoss入门

 很多内容摘自 https://www.jianshu.com/p/4baaf549436b 1.安装目录 安装完Jboss后得目录结构 目录 功能 appclient/ 包含应用程序客户容器的配置细节。 bin/ 包含 Red Hat 企业版 Linux 和微软 Windows 上 JBoss EAP 的启动脚本。 docs/ 许可证文...

一个漂亮的输出MySql数据库表结构的PHP页面

经常为了方便和直观,我们会首先直接在数据库中设计出表,但是接下来又要将表的结构和设计编写在设计文档中,以便编码的时候可以直观的查询,一旦数据库表非常多,字段非常多的时候,这无疑是件非常郁闷的工作。 这是一个漂亮的PHP页面,可以自动输出MySql数据库所有表结构,大大方便了文档的编写工作,也同时非常方便编码的时候进行查询。当然在设计MySql数据库表和字段...

(二)PaddleOCR 编译 ocr_system.dll

 选中ocr_system项目 右键-->仅用于项目-->仅生成ocr_system, 生成ocr_system.dll,打开cmd cd到Release目录下,就可以看到ocr_system.dll了。 下图中的Debug在编译的时候记得换成Release,不然就会报下图错误列表中的错误。 这样ocr_system.dll 和 ocr_...

四、 MySQL客户端工具及SQL讲解

一.客户端命令介绍 mysql客户端命令 ​ 1、用于数据库的连接管理 1) 连接(略) 2) 管理: 3)接收用户的SQL语句 #MySQL接口自带的命令 h 或 help 或? 查看帮助,查看mysql的管理命令 G 格式化查看数据(结果以key:value形式展示) T 或 tee...

Linux清空文件内容方法大全

Linux系统中一切皆文件。 所以在清空或删除文件之前一定要确保该文件不是系统文件或者其他重要配置文件,否则可能引发系统错误。 一、通过重定向来清空文件内容 该方法是最简单的,通过shell重定向null到指定文件即可 $ > system.log 还有两个重定向方法: 重定向:或者true到指定文件 $ :> system.log 或者...