shell 重定向 1> 2> &>】的更多相关文章

shell重定向调试信息 fulinux ************************************************************************************************************************************** 作        者:fulinux 转载声明:http://blog.csdn.net/fulinus/article/details/29912333 ****************…
我们在写脚本或用脚本时,往往会发现 > /dev/null 2>&1 这类的命令.之前都是简单的了解一下,并没有深度消化,直到自己写脚本时,不认真写成了2>&1 >/dev/null,导致结果出问题.下面我通过网络给大家介绍一下: shell重定向介绍: 我们平时写的脚本或启动程序,某段代码会处理外部的输入,然后将调用传参指行命令结果输出到屏幕或指定的位置.在交互式的脚本中,输入来自用户的键盘和鼠标,结果输出到用户的屏幕或设备中.而对于某些后台运行的启动脚本或程序,…
Shell重定向:2>&1 0 是一个文件描述符,表示标准输入(stdin) 1 是一个文件描述符,表示标准输出(stdout) 2 是一个文件描述符,表示标准错误(stderr) 重定向用法: 1>&2 意思是把标准输出重定向到标准错误. 2>&1 意思是把标准错误输出重定向到标准输出. &>filename 意思是把标准输出和标准错误输出都重定向到文件filename中 栗子1: go run ../../spiders/usa/listmain…
                     shell重定向输出的应用 案例2:重定向输出的应用 2.1问题 本例要求编写一个脚本/root/out.sh,功能特性如下: 执行此脚本显示I love study!! 执行/root/out.sh 2>err.log应该没有显示,但是查看err.log文件的内容为I love study!! 2.2方案 屏幕输出文本的类别: 标准输出(1):命令行执行正常的显示结果 标准错误(2):命令行执行出错或异常时的显示结果 将屏幕显示信息保存到文件: cmd…
1.对重定向的理解 Linux Shell 重定向分为两种,一种输入重定向,一种是输出重定向:从字面上理解,输入输出重定向就是「改变输入与输出的方向」的意思. 输入方向就是数据从哪里流向程序.标准输入方向是指数据从键盘流向程序,如果改变了它的方向,数据就从其它地方流入,这就是输入重定向. 输出方向就是数据从程序流向哪里.标准输出方向是指数据从程序流向显示器,如果改变了它的方向,数据就流向其它地方,这就是输出重定向. 2.硬件设备和文件描述符 计算机的硬件设备有很多,常见的输入设备有键盘.鼠标.麦…
1.对重定向的理解 2.硬件设备和文件描述符 文件描述符到底是什么 3.Linux Shell 输出重定向 4.Linux Shell 输入重定向 5.结合Linux文件描述符谈重定向 6.Shell 对文件描述符的操作 7.改变当前shell环境的重定向目标 8.示例 1.对重定向的理解 Linux Shell 重定向分为两种,一种输入重定向,一种是输出重定向:从字面上理解,输入输出重定向就是「改变输入与输出的方向」的意思. 输入方向就是数据从哪里流向程序.标准输入方向是指数据从键盘流向程序,…
by 程默 在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作. 用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit –n 定义数字有关系,不能超过最大值. linux启动后,会默认打开3个文件描述符,分别是:标准输入standard input 0,正确输出standard output 1,错误输出:erro…
需求: 把找到的文件逐行输出,然后用rm在许可的情况下删除   前置准备:  $ls rm.sh test1 test2 test3 test4 test5 test6 $cat rm.sh #! /bin/bash while read fileinfo do rm -iv $fileinfo done< <( find . -name 'test*' -print ) 第一次执行结果: $bash rm.sh rm:是否删除普通文件“./test2”? 出现的问题: 虽然rm显示了询问信息…
#!/bin/bash      最近在看shell,各种困惑,不过解决困惑的感觉还是很不错的.废话少说,linux中使用文件描述符来标识每个文件对象.文件描述符为一个非负整数,可以唯一标识会话中打开的文件.每个过程最多可以有9个文件描述符.     linux使用的标准文件描述符:     标准输入STDIN就是0,标准输出STDOUT就是1,标准错误输出STDERR就是2.而我们也可以自己创建文件描述符3~8.     将今天看到的一段代码: 1    #!/bin/bash 2    ex…
shell上: 0表示标准输入 1表示标准输出 2表示标准错误输出 > 默认为标准输出重定向,与 1> 相同 2>&1 意思是把 标准错误输出 重定向到 标准输出. &>file 意思是把 标准输出 和 标准错误输出 都重定向到文件file中 用例子说话: 1. grep da * 1>&2  2. rm -f $(find / -name core) &> /dev/null 上面两例中的 & 如何理解,&不是放到后台执…
Shell上:0表示标准输入1表示标准输出2表示标准错误输出> 默认为标准输出重定向,与1>相同2>&1 意思是 把标准错误输出重定向到标准输出1>&2 意思是 把标准输出重定向到标准错误输出&>file 意思是 把标准输出和标准错误都重定向到文件file中 &>file 或者 2>&1 都是一个独立的重定向符号,不要分开来. 注意:一般默认都输出到屏幕…
输入重定向 和输出重定向一样,Unix 命令也可以从文件获取输入,语法为: command < file 这样,本来需要从键盘获取输入的命令会转移到文件读取内容. 注意:输出重定向是大于号(>),输入重定向是小于号(<). 例如,计算 users 文件中的行数,可以使用下面的命令: $ wc -l users 2 users $ 也可以将输入重定向到 users 文件: $ wc -l < users 2 $ 注意:上面两个例子的结果不同:第一个例子,会输出文件名:第二个不会,因为…
本文的例子部分是引用网络上的一篇文章. Linux的IO输入输出有三类 Standard Input 代码 0 Standard Output 代码 1 Standard Error 代码 2 举个例子:ls test.sh test1.sh >success.txt 2>&1 将前面执行结果的标准输出流写入success.txt文件,省略了1,全句为:ls test.sh test1.sh 1>success.txt 2>&1. 错误输出用2,如2>erro…
路还长 别太狂 以后指不定谁辉煌 2>&1 和 &> 的解释 Linux的IO输入输出有三类 Standard Input 代码 0 Standard Output 代码 1 Standard Error 代码 2 ls thereisno 1> out.txt 标准输出重定向 也可以不加1写成 ls thereisno > out.txt ls thereisno 2> out.txt 标准错误重定向 ls thereisno > out.txt 2&…
1. 标准输入,标准输出与标准错误输出 Linux下系统打开3个文件,标准输入,标准输出,标准错误输出. 标准输入:从键盘输入数据,即从键盘读入数据. 标准输出:把数据输出到终端上. 标准错误输出:把标准错误输出到终端上. 默认的标准输入指的是键盘,默认的标准输出与标准错误输出指的是屏幕或者是终端. 系统为这三个文件分配了文件标识符fd(file descripter). 在Linux系统下,一切皆是文件,对文件的操作,一般要用到文件标识符.它们的文件标识符,分别为0,1,2. 2. 重定向 重…
在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作. 用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit –n 定义数字有关系,不能超过最大值. linux启动后,会默认打开3个文件描述符,分别是:标准输入standard input 0,正确输出standard output 1,错误输出:error outp…
重定向内容介绍 一条shell命令的执行包含三个文件描述符:标准输入(键盘等) stdin 0,标准正确输出(屏幕等) stdout 1,标准错误输出(屏幕等)stderr 2   通过重定向可以指定输入的文件内容和输出到的位置     符号 说明 < file 输入重定向,将<后的file文件内容作为command执行前的输入 > file 或1>file 输出重定向,将标准正确输出覆盖到后面的file文件内 >> file或1>>file 输出重定向,将…
.1和2分别表示标准输入.标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出,比如 >a.txt 表示将错误信息输出到文件a.txt中. #将1,2输出转发给/dev/null设备 [chengmo@centos5 shell]$ ls test.sh test1.sh  >/dev/>/dev/null #将错误输出2绑定给 正确输出 ,然后将 正确输出 发送给 /dev/null设备,这种常用 [chengmo@centos5 shell]$ ls test.sh t…
管道命令操作符是:”|”,它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandarderror 信息没有直接处理能力.然后,传递给下一个命令,作为标准的输入 standard input. 管道命令使用说明: 先看下下面图: command1正确输出,作为command2的输入 然后comand2的输出作为,comand3的输入 ,comand3输出就会直接显示在屏幕上面了. 通过管道之后:comand1,comand2的正确输出不显示…
前言 首先我们需要知道exec是什么,exec是linux下面一个创建进程的方法,详情请参考:https://www.cnblogs.com/guge-94/p/11016176.html 重定向 概念 I/O重定向通常与FD有关 三个常用FD(默认与keyboard.monitor.monitor有关) 一般情况下,操作系统默认只存在这三个fd,但是我们通过ls去查看的时候发现会有一个大于2的fd,这是因为我们在查看的时候会有一个句柄产生,这个时候会生成一个新的fd FD 说明 0 stdin…
一直没搞懂 &> 和 <& 是表示什么意思. 今天自己总结一下,希望自己能理解它的真正含义. 重定向标准输入输出,切记 “1” 和 “>”之间没有空格 $ > file $ cat < file hello world $ > file hello world $ cat < file $ &表示什么意思 重定向可以用i>&j命令,表示把文件标识符i重新定向到j,你可以把"&"理解为"取地…
如何重定向标准错误输出到标准输出?如何把标准错误输出输出到一个文件? Bash提供了I/O重定向工具,有3个缺省的文件(标准输出流): stdin - 用来获取输入,比如键盘.文件重定向 stdout - 输出数据,缺省打印到屏幕 stderr - 输出错误信息,缺省打印到屏幕 理解I/O(标准输入/输出流): 句柄 名字 描述 0 stdin 标准输入 1 stdout 标准输出 2 stderr 标准错误输出 重定向标准错误输出到文件, 标准输出还是输出到屏幕 [root@ns_10.2.1…
// 函数 输入输出重定向 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 "…
写一个简单的 demo 示例 #include <stdio.h> int main() { fprintf(stdout, "stdout output\n"); fprintf(stderr, "stderr output\n"); ; } $gcc test.c -o test $./test > /dev/null stderr output $./test > /dev/null 2>&1 $ 对于重定向符号,可以这么…
0表示标准输入1表示标准输出2表示标准错误输出> 默认为标准输出重定向,与 1> 相同2>&1 意思是把 标准错误输出 重定向到 标准输出.&>file 意思是把 标准输出 和 标准错误输出 都重定向到文件file中 举例(del.sh) t date 执行 sh del.sh >right 2>&1 &>all 输出会把date执行结果(正确)输出到right:t执行结果(错误)重定向right:所有输出重定向到all…
三个默认的文件描述符 0: stdin(标准输入) 1: stdout(标准输出) 2: stderr(标准错误输出) 系统中这3个文件描述符所对应的文件: 重定向顺序 示例脚本 echo "hello world" echo "xxx" sh test.sh hello world xxx sh test.sh >/tmp/out $ cat /tmp/out hello world xxx sh -x test.sh >/tmp/out 2>/…
command-line1 [-n] > file或文件操作符或设备 command-line1 [-n] >> file或文件操作符或设备 >suc.txt >err.txt >>suc.txt >>err.txt exec >&- exec <&- &[n] 代表是已经存在的文件描述符,& 代表输出 &2代表错误输出 &-代表关闭与它绑定的描述符 ls test.sh test1.sh &…
http://note.youdao.com/noteshare?id=e944e6315d1566b3417e6f59305ddedc…
#!/bin/bash NC_START="nc 192.168.76.227 9999" LOOP= ;i<$LOOP;i++)) do $NC_START <<EOF $i EOF done 以上例子是一个调用 nc 命令向一个监听端口发送数据的例子. 这里 NC_START 只是一个例子, 在 <<EOF 之前可以是任意一个命令 EOF 是一个变量名,可以自定义,但必须成对出现. 在 XXX <<EOF  和 EOF 之前的任何字符(包括…
Abstract: 1) Linux Shell 命令的标准输入.标准输出.标准错误,及其重定位: 2)Linux Shell 操作自定义文件描述符: 文件描述符是与文件相关联的一些整数,他们保持与已打开文件的关联.众所周知的文件描述符是标准输入stdin.标准输出stdout.标准错误stderr,我们可以重定位这些文件描述符关联文件的内容到另外一个文件文件描述符. 1. Linux Shell 命令的标准输入.标准输出.标准错误 当我们在编写 shell 脚本时,我们会非常频繁地操作执行命令…