iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >shell中的/dev/null有什么用
  • 409
分享到

shell中的/dev/null有什么用

2023-06-28 01:06:24 409人浏览 八月长安
摘要

这篇文章主要讲解了“shell中的/dev/null有什么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“shell中的/dev/null有什么用”吧!把/dev/null看作”黑洞”. 它

这篇文章主要讲解了“shell中的/dev/null有什么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“shell中的/dev/null有什么用”吧!

/dev/null看作”黑洞”. 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚本都非常的有用。

shell中的/dev/null有什么用

用途

/dev/null 通常被用于丢弃不需要的输出流,或作为用于输入流的空文件,这些操作通常由重定向完成,任何你想丢弃的数据都可以写入其中

丢弃标准输出

在写shell脚本的时候,只想通过命令的结果执行后面的逻辑,而不想命令执行过程中有一大堆中间结果输出,这时候可以把命令执行过程中的输入全部写入 /dev/null

现有 a.sh 脚本,它的功能是判断传入的系统命令是否存在,脚本内容如下

#!/bin/bash     command -v $1     if [[ $? -eq 0 ]]; then     echo "command $1 exist..."  else     echo "command $1 not exist..."  fi

执行 ./a.sh top 命令,输出如下

[tt@ecs-Centos-7 dev_test]$ ./a.sh top/bin/topcommand top exist...

说明: command -v 命令名 是查找指定命令名的命令是否存在,如果存在,输出指定命令名的路径,否则,不做任何输出

$? 表示前一条命令的执行结果, 0 表示成功,其他表示失败

脚本的执行结果中先输出了 top 命令的路径,紧接着输出了top命令存在的日志

把 command -v $1的结果重定向到 /dev/null 可以屏蔽掉 top命令路径的输出,调整之后的a.sh 内容如下

#!/bin/bash command -v $1 >/dev/null if [[ $? -eq 0 ]]; then   echo "command $1 exist..."else   echo "command $1 not exist..."fi

再次执行 ./a.sh top,结果如下

[tt@ecs-centos-7 dev_test]$ ./a.sh topcommand top exist...[tt@ecs-centos-7 dev_test]$

从执行结果可以看出,把 command -v $1 的中间结果重定向到 /dev/null 之后,就不会再输出top命令的路径了

而且,修改之后的脚本执行结果和原来的结果是一样的

丢弃标准错误输出

在shell脚本中,删除一个文件的时候,需要先判断文件是否存在,然后才能执行删除操作,否则删除的时候会输出错误, 一般的删除文件脚本内容如下:

#!/bin/bash     if [ -f $1 ]; then     rm $1  fi

可以通过把删除命令的输出重定向到 /dev/null 来避免输出错误信息, 同时也不用判断文件是否存在了, 调整之后的删除脚本内容如下:

#!/bin/bashrm $1 >/dev/null 2>$1

分别执行命令 ./d.sh t1.txt、./d.sh t2.txt ,结果如下:

[tt@ecs-centos-7 dev_test]$ ls t*.txtt1.txt[tt@ecs-centos-7 dev_test]$ ./d.sh t1.txt[tt@ecs-centos-7 dev_test]$ ./d.sh t2.txt[tt@ecs-centos-7 dev_test]$ ls t*.txtls: 无法访问t*.txt: 没有那个文件或目录

ls: 无法访问t*.txt: 没有那个文件或目录

t1.txt 文件位于当前目录下,t2.txt 不存在,从执行结果可以看出,不管是删除存在的文件还是不存在的文件都不会有错误输出信息了

清空文件内容

清空文件内容有很多种方法,这里介绍一种利用 /dev/null 清空文件内容的方法,具体的示例如下:

[tt@ecs-centos-7 dev_test]$ cat t.txt  123456[tt@ecs-centos-7 dev_test]$ cat /dev/null > t.txt  [tt@ecs-centos-7 dev_test]$ cat t.txt

日志的处理

在脚本中,为了方便调试,经常会加一些日志打印的逻辑,有时这种调试日志还比较多,脚本测试通过之后,这些调试日志可能就删除或者注释掉了

这里提供一个小技巧,既不用删除也不用注释掉日志,同时执行脚本的时候还不会输出这些调试日志

比如: 当前目录有一个日志文件 log.txt,脚本的调试日志会以 echo ” this is debug log” >> log.txt 的形式写入这个文件中

现在脚本功能测试通过了,调试日志不需要写入log.txt了

可以这么做:原来的脚本原样不动,本地先删除 log.txt,然后执行 ln -s /dev/null ./log.txt 命令,该命令建立了一个 log.txt 到 /dev/nulll的软连接,以后都有写入 log.txt 的内容实际都会写入 /dev/null ,而写入 /dev/null 的所有内容都会被丢弃掉

感谢各位的阅读,以上就是“shell中的/dev/null有什么用”的内容了,经过本文的学习后,相信大家对shell中的/dev/null有什么用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: shell中的/dev/null有什么用

本文链接: https://www.lsjlt.com/news/315559.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • shell中的/dev/null有什么用
    这篇文章主要讲解了“shell中的/dev/null有什么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“shell中的/dev/null有什么用”吧!把/dev/null看作”黑洞”. 它...
    99+
    2023-06-28
  • Shell脚本中/Dev/Null有什么用
    这篇文章主要为大家展示了“Shell脚本中/Dev/Null有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Shell脚本中/Dev/Null有什么用”这篇文章吧。用途/dev/null ...
    99+
    2023-06-15
  • Shell脚本中/dev/null 的用途是什么
    今天给大家介绍一下Shell脚本中/dev/null 的用途是什么。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。/dev/null 是一个特殊的设备文件,它丢...
    99+
    2023-06-28
  • shell脚本中/dev/null怎么使用
    在Shell脚本中,/dev/null用于丢弃输出或输入。下面是一些/dev/null的使用示例:1. 丢弃输出:```shellcommand > /dev/null```这将运行命令并将其输出重定向到/dev/null,而不是在标准...
    99+
    2023-08-09
    shell
  • shell中>/dev/null 2>&1是什么意思
    小编给大家分享一下shell中>/dev/null 2>&1是什么意思,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!shell重定向介绍就像我们平时写的程序一样,一段程序会处理外部的输入,然后将运算结果...
    99+
    2023-06-09
  • shell中1小于/dev/null 2大于&1的含义是什么
    这篇文章主要介绍shell中1小于/dev/null 2大于&1的含义是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!shell中可能经常能看到:>/dev/null 2>&1 命令的...
    99+
    2023-06-09
  • linux中dev目录有什么用
    这篇文章主要介绍“linux中dev目录有什么用”,在日常操作中,相信很多人在linux中dev目录有什么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux中dev目录有什么用”的疑惑有所帮助!接下来...
    99+
    2023-06-30
  • javascript中null有什么用
    这篇文章给大家分享的是有关javascript中null有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 javascript中null是JS提...
    99+
    2024-04-02
  • Linux Shell中()、(())、[]、[[]]、{}的有什么作用
    这篇文章主要介绍“Linux Shell中()、(())、[]、[[]]、{}的有什么作用”,在日常操作中,相信很多人在Linux Shell中()、(())、[]、[[]]、{}的有什么作用问题上存在疑惑,小编查阅了各式资料,整理出简单好...
    99+
    2023-06-15
  • Shell中Sampler有什么用
    这篇文章主要介绍Shell中Sampler有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Sampler是一个用于shell命令执行,可视化和告警的工具。其配置使用的是一个简单的YAML文件。为什么我需要它?你...
    99+
    2023-06-15
  • linux中Shell Script有什么用
    这篇文章给大家分享的是有关linux中Shell Script有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1 Shell Scipt使用指令和基本程序设计结构写成的程序,可以完成复杂的处理流程1 程序书...
    99+
    2023-06-09
  • linux中shell有什么作用
    Shell是一种命令行解释器,它是Linux操作系统中用户与系统内核交互的界面。它具有以下作用:1. 执行命令:通过Shell,用户...
    99+
    2023-08-30
    linux shell
  • react项目之webpack-dev-serve有什么用
    这篇文章主要介绍了react项目之webpack-dev-serve有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。模块热替换(Hot...
    99+
    2024-04-02
  • linux中dev sda指的是什么
    这篇“linux中dev sda指的是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“linux中dev sda指的是什么...
    99+
    2023-07-02
  • c++中null的用法是什么
    在C++中,通常使用nullptr关键字来表示空指针,而不是使用NULL或0。nullptr是C++11引入的新关键字,用于表示空指...
    99+
    2024-03-12
    c++
  • shell中的declare命令有什么作用
    在shell中,declare命令用于声明变量的属性和类型。它具有以下作用:1. 声明变量的类型:可以使用declare命令来声明一...
    99+
    2023-09-12
    shell
  • Shell中grep命令有什么用
    这篇文章给大家分享的是有关Shell中grep命令有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。用‘grep'搜索文本文件如果您要在几个文本文件中查找一字符串,可以使用‘grep'命令。‘...
    99+
    2023-06-09
  • mysql中set null的用法是什么
    在MySQL中,SET NULL用于将列的值设置为NULL。这通常用于更新或插入记录时,将某个列的值设置为NULL。例如,可以使用以...
    99+
    2024-04-09
    mysql
  • dev/hda5在linux中指的是什么
    这篇文章主要介绍“dev/hda5在linux中指的是什么”,在日常操作中,相信很多人在dev/hda5在linux中指的是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”dev/hda5在linux中指的...
    99+
    2023-07-04
  • Linux系统中的/dev目录是什么
    这篇文章主要介绍Linux系统中的/dev目录是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!接触过Linux系统的小伙伴都知道Linux中一切皆为文件,所有的设备都是以文件的形式存在于dev目录下,所以/dev...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作