shell 重定向 2>&1 2>/dev/null 理解笔记
// 函数 输入输出重定向 1、函数 function hello(){
echo '1111'
} ------- hello hello(){ // function 可以省略
echo '2222'
} hello ------- hello(){
return 11
} hello
echo $? // 获取函数返回的值 ------- function hello(){
echo $1
echo $2
echo $3
echo "第十个参数${10}"
echo "参数个数${#}"
echo "输出所有参数${*}"
echo "输出所有参数${@}"
} hello 1 2 3 4 5 ------- 2、输入输出重定向 >
>>
< 输入重定向
<< cat < ./1.txt // 把1.txt的内容截取出来 标准输入文件(stdin) 0
标准输出文件(stdout) 1
标准错误文件(stderr) 2 重定向解释:
2>&1 // 标准错误输出重定向到标准输出
/dev/null // 空设备 相当于一个黑洞 吞噬一切信息 // 标准输出
echo 123 > ./1.txt 等同于 echo 123 1> ./1.txt // 标准错误输出
echo 123 2> ./1.txt 把标准错误输出重定向到1.txt ./2.sh
hello // hello 会报错 走标准错误输出
date ./2.sh > 1.txt // 会看到报错直接在终端上显示,未输出到1.txt,因为这里是标准输出,没有写标准错误输出重定向到1.txt ./2.sh 1> 1.txt 2> ./1.txt 这样就把标准错误输出到了1.txt
但是有个问题,这个写法相当于,打开了两次1.txt, 标准输出被标准错误输出给覆盖了 ./2.sh 1> 1.txt 2>&1 // >& 相当于对后面1即标准输出的引用,然后这句话的意思是标准输出重定向到1.txt,标准错误输出也重定向到1.txt,因此 ./1.txt里会显示 ./2.sh:行1: t: 未找到命令
2019年 03月 30日 星期六 15:29:38 CST ./2.sh 1> 1.txt 2>/dev/null // 这里标准输出重定向到1.txt, 标准错误输出重定向到空设备,即不输出错误信息,这时./1.txt里会显示
2019年 03月 30日 星期六 15:40:58 CST 3、文件引用 source ./xx.sh 或者 . ./1.sh
shell 重定向 2>&1 2>/dev/null 理解笔记的更多相关文章
- /dev/null 2>&1的意思(可以直接参考shell重定向那篇,/dev/null是空设备)
路还长 别太狂 以后指不定谁辉煌 2>&1 和 &> 的解释 Linux的IO输入输出有三类 Standard Input 代码 0 Standard Output 代码 ...
- Shell标准输出、标准错误 >/dev/null 2>&1
Shell中可能经常能看到:>/dev/null 2>&1 eg:sudo kill -9 `ps -elf |grep -v grep|grep $1|awk '{print ...
- [转]Linux Shell 1>/dev/null 2>&1 含义
shell中可能经常能看到:echo log > /dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 /dev/null :代表空设备文件> :代表 ...
- 重定向,/dev/null, 1>, 2>什么意思?
文件描述符我们常见的就是系统预留的0,1和2这三个,他们的意义分别有如下对应关系: 0 —— stdin(标准输入) 1 —— stdout (标准输出) 2 —— stderr (标准错误) 其中, ...
- Linux Shell 1>/dev/null 2>&1 含义
shell中可能经常能看到:echo log > /dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 /dev/null :代表空设备文件> :代表 ...
- 详细理解 > /dev/null 2>&1
0:表示键盘输入(stdin) 1:表示标准输出(stdout),系统默认是1 2:表示错误输出(stderr) "command >/dev/null 2>&1 &am ...
- Linux Shell下”>/dev/null 2>&1“相关知识说明
0:表示键盘输入(stdin)1:表示标准输出(stdout),系统默认是1 2:表示错误输出(stderr) command >/dev/null 2>&1 & == ...
- Shell的>/dev/null、2>&1、2>1
转载自:http://dos2unix.cn/link/480 1. 标准输入stdin文件描述符为0,标准输出stdout文件描述符为1,标准错误stderr文件描述符为2 2. /dev/null ...
- 添加crontab为什么要重定向输出到/dev/null
如果crontab不重定向输出,并且crontab所执行的命令有输出内容的话,是一件非常危险的事情.因为该输出内容会以邮件的形式发送给用户,内容存储在邮件文件 /var/spool/mail/$use ...
随机推荐
- C/C++音视频库ffmpeg的数据包AVPacket分析
ffmpeg下载地址 http://www.ffmpeg.club/ AVPacket是ffmpeg用来存放编码后的视频帧数据,我们来分析一下这个结构体,先贴出ffmpeg3.2中AVPacket声明 ...
- 如何使用django操作数据库,向原有表中添加新的字段信息并建立一个多对多的关系?
(注:本人用的pycharm开发工具) 1.在你要添加新字段的app的 models.py 文件中添加需要新增的字段(book表新增authors字段并和author建立多对多关系,author表新增 ...
- Tutorial: Create a Windows Machine Learning UWP application (C#)
In this tutorial, we'll build a simple Universal Windows Platform application that uses a trained ma ...
- Ffmpeg使用
ffmpeg官网 刚开始安装的推荐博客|--利用FFmpeg 开发音视频流:一.二.三 1.分辨率码率 主要视频格式与码率: 分辨率 200p——对应的码率是256kpbs,也就是说,一分钟需要流量1 ...
- 【pytorch】关于Embedding和GRU、LSTM的使用详解
1. Embedding的使用 pytorch中实现了Embedding,下面是关于Embedding的使用. torch.nn包下的Embedding,作为训练的一层,随模型训练得到适合的词向量. ...
- [leetcode] 5.Longest Palindromic Substring-1
开始觉得挺简单的 写完发现这个时间超限了: class Solution: def longestPalindrome(self, s: str) -> str: # longest palin ...
- laravel 读写分离源码解析
前言:上一篇我们说了<laravel 配置MySQL读写分离>,这次我们说下,laravel的底层代码是怎样实现读写分离的. 一.实现原理 说明: 1.根据 database.php ...
- netty的简单的应用例子
一.简单的聊天室程序 public class ChatClient { public static void main(String[] args) throws InterruptedExcept ...
- 基于jdk1.8的ArrayList源码分析
前言ArrayList作为一个常用的集合类,这次我们简单的根据源码来看看AarryList是如何使用的. ArrayList拥有的成员变量 public class ArrayList<E> ...
- Ireport5.0.1 从java后台接收list集合
作为ireport新手,开始使用时总有很多问题,说一下今天解决的一个问题,就是怎样从java后台接收list集合并显示出列表. 1.首先要在主dataset中的Paramerters 中创建参数lis ...