元件库里面有stm8和stm32的区别了吗

Shell的标准输出、标准异常 &/dev/null 2&&1 - 编程当前位置:& &&&Shell的标准输出、标准异常 &/dev/null 2&&amShell的标准输出、标准异常 &/dev/null 2&&1&&网友分享于:&&浏览:0次Shell的标准输出、标准错误 &/dev/null 2&&1
在经常写shell脚本时,经常看到:&/dev/null 2&&1
netstat -nlp | grep 9780 | awk '{print $7}' | awk -F "/" '{print $1}' 1&/dev/null 2&/dev/null
& 代表重定向到哪里,例如:echo "test" & /home/test.txt
1 表示stdout标准输出,系统默认值是1,所以"&/dev/null"等同于"1&/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2&&1,表示2的输出重定向等同于1
那么,上面语句的意思是:
1&/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
2&&1 接着,标准错误输出重定向等同于 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
command & filename
把标准输入重定向到filename文件中
command 0& filename
把标准输入重定向到filename文件中
command & filename
把标准输出重定向到filename文件中(覆盖)
command 1& fielname
把标准输出重定向到filename文件中(覆盖)
command && filename
把标准输出重定向到filename文件中(追加)
command 1&& filename
把标准输出重定向到filename文件中(追加)
command 2& filename
把标准错误重定向到filename文件中(覆盖)
command 2&& filename
把标准输出重定向到filename文件中(追加)
command & filename 2&&1
把标准输出和标准错误一起重定向到filename文件中(覆盖)
command && filename 2&&1
把标准输出和标准错误一起重定向到filename文件中(追加)
command & filename &filename2
把标准输入重定向到filename文件中,把标准输出重定向
到filename2文件中
command 0& filename 1& filename2 把标准输入重定向到filename文件中,把标准输出重定向
到filename2文件中
重定向的使用有如下规律:
1)标准输入0、输出1、错误2需要分别重定向,一个重定向只能改变它们中的一个。
2)标准输入0和标准输出1可以省略。(当其出现重定向符号左侧时)
3)文件描述符在重定向符号左侧时直接写即可,在右侧时前面加&。
4)文件描述符与重定向符号之间不能有空格!
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有11:06 提问
python ${OOB} && /dev/null
请问各位大牛这句shell脚本是什么意思啊,感激不尽啊!!!
按赞数排序
我只知道&/dev/null是把前面的内容重定向这个伪设备当中,通俗地说是把前面的结果扔到这个垃圾堆里去
把执行结果丢到null设备
其他相似问题shell去掉文件中空行(空白行)的方法详解
字体:[ ] 类型:转载 时间:
最近要查看的日志文件提取后有很多空行,不利于以前的文件可以进行比较了,为了向下兼容,只能取得时候把空行删除掉
本文详细介绍了使用shell去除文件中的空行的方法,学习下sed、awk、shell文件检测的方法,有需要的朋友可以作个参考。本节内容:shell去掉文件中空行
1,shell 去掉文件中的空行
代码如下:cat filename | sed -e '/^$/d' & filename
2,保留最新的9个文件,其它的文件删除的命令语句
代码如下:ls -t | awk '{if(NR&9){print $0}}' |xargs rm -f
附,shell中的特殊变量$$Shell本身的PID(ProcessID)$!Shell最后运行的后台Process的PID$?最后运行的命令的结束代码(返回值)$-使用Set命令设定的Flag一览$*所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。$@所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。$#添加到Shell的参数个数$0Shell本身的文件名$1~$n添加到Shell的各参数值。$1是第1参数、$2是第2参数…判断 test& & test -f 是否参在并是文件& &-d 是否参在并是目录& &-e 文件是否存在&
判断7种文件类型& test -f& $1 && cat $1普通文件& test -d& $1 && ls -ld $1目录test -L& $1 && ls -ld $1连接文件test -p& $1 && ls -ld $1管道文件test -S& $1 && ls -ld $1套接字& test -b& $1 && ls -ld $1块设备& test -c& $1 && ls -ld $1字符设备
下面举几个例子吧,供大家学习参考。
1,比较数字大小&
代码如下:#!/bin/bash& test $1 -gt& $2 && echo $1& test $1 -lt& $2 && echo $2& test $1 -eq& $2& && echo $1=$2
2,判断字符串& &
代码如下:#!/bin/bash& test $1 !=& $2 && echo 不相等& test $1 =& $2& && echo $1=$2
3,组合判断& 1)、
代码如下:#!/bin/bash& test $1 -gt 5 -a& $1 -lt 10 && echo& $1& if& #!/bin/bash& if test $1 -gt 5(或if [ $1 -gt 5 ]注意空格)& then& &echo& $1& fi&
2)、 代码如下:#!/bin/bash& ping -c 1 -W 1 192.168.0.$1 &&/dev/null (-c 1表示ping一次,-W目标主机不可达超时为1秒)& if [ $? -eq 0 ]& then& echo& link OK& esleecho link no& fi
SHELL 删除文件中的空行或者空白行二:
今天发现有个文件中空行太多了 ,打算删除其中的空行。
于是使用sed, 查了下命令,这么写:
sed '/^$/d' file1
发现仍然输出内容仍然有一大堆空行,真是莫名其妙。
于是:sed '/^$/p' file1 发现输出的空行很少,而实际上是很多空行的呀。
于是使用 cat -A file1
才发现,原来很多行里出现空格字符,导致正则并不识别它是空行
于是修改为: sed '/^ *$/d' file1 这下就OK啦
另外要注意在windows 下换行符是^M$
而在 LINUX下是 $,如果是WINDOWS下的文件的话需要转换一下,使用doc2unix好像是这个工具吧。
Linux shell 删除文件空行三:
最近要查看的日志文件提取后有很多空行,不利于以前的文件可以进行比较了,为了向下兼容,只能取得时候把空行删除掉。自己google了一下,用了grep方法,效率还是挺快的,25000+行中73行空行,瞬间搞定,应该可以接手。 方法一:(我就是用的这个)&grep -v "^$" file 去除匹配的空行另外在排查找错的时候也利用grep 查看那几行是空行,从而从原来的日志文件查看那几行为什么没有该信息,加参数 -n grep -n "^$" file 即可找到空行再去原日志文件查看信息。
方法二:用tr命令cat 文件名 |tr -s ‘\n'方法三:用sed命令cat 文件名 |sed ‘/^$/d' 方法四:用awk命令cat 文件名 |awk ‘{if($0!=”")print}'cat 文件名 |awk ‘{if(length !=0) print $0}'
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具linux(29)
之前对shell重定向的了解是模棱两可的,遇到重定向相关的知识总是需要翻书或者google,因此在这里总结一下shell的重定向
一 输出重定向
& 表示覆盖; && 表示追加
Command & filename
把标准输出重定向到一个新文件中(此命令等价于:Command 1& filename.&#注意:&1&和&&&中间没有空格.&系统默认的就是1, 因此1可以省略&)
Command && filename 把标准输出重定向到一个文件中(追加)
Command & filename 把标准输出重定向到一个文件中
Command & filename 2&&1 把标准输出和错误一起重定向到一个文件中
Command 2& filename 把标准错误重定向到一个文件中
Command 2&& filename 把标准输出重定向到一个文件中(追加)(注意:2和&&中间没有空格)
Command && filename 2&&1 把标准输出和错误一起重定向到一个文件(追加)
二 输入重定向
Command & filename & filename2
& &&Command命令以filename文件作为标准输入,以filename2文件作为标准输出
Command & filename Command命令以filename文件作为标准输入
Command && delimiter 从标准输入中读入,直到遇到delimiter分界符(delimiter为结束输入的标志)
三 绑定重定向
Command &&m
把标准输出重定向到文件描述符m中(即等价于Command 1&&m)
Command & &- 关闭标准输入
Command 0&&- 同上
&span style=&font-family:Microsoft YaHfont-size:14&&cmd & file
#说明: 将 cmd 的输出发送到 file 文件(覆盖模式)
cmd && file
#说明: 将 cmd 的输出发送到 file 文件(追加模式)
cmd & file
#说明: 以 file 文件的内容作为 cmd 的输入
cmd && text
#说明: 嵌入文件(here document, 类似于PHP语法)形式的输入
#shell 可在行内输入中做变量、命令和算术替换
cmd &&- text
#说明: 作用同上, 不过会自动删除here document中每行开头的制表符Tab
cmd &&& word
#说明: here string 格式的输入
#参见: http://bash.cyberciti.biz/guide/Here_strings
#参见: http://linux.die.net/abs-guide/x15683.html
cmd && file
#说明: 以读写方式打开文件 file
cmd 5&&file
#说明:在文件描述符5上打开文件file以供读写
cmd &| file
#说明: 强制以覆盖方式将 cmd 的输出发送到 file 文件
#即便 shell 设置了 noclobber 选项也是如此
#说明: 将 cmd 的输出发送到文件描述符 n
#说明: 作用同上。将本该输出到文件描述符 m 的内容, 发送到文件描述符 n
#说明: 关闭标准输出
#说明: 从文件描述符 n 处获取内容作为 cmd 命令的输入
#说明: 作用同上。除了本该从文件描述符 m 处获取输入,改为从文件描述符 n 处获取
#说明: 关闭标准输入
#说明: 通过复制移动文件操作符 n 为标准输入并且关闭原始输入
#说明: 通过复制移动文件操作符 n 为标准输出并且关闭原始输出
cmd 2&file
#说明: 将标准错误输出发送到文件 file
& file 2&&1
#说明: 将标准输出发送到文件 file, 将标准错误发送到文件描述符 1, 也即 file 文件
#说明: 将标准输出和标准错误都发送到文件 file (作用同上)
#说明: 作用同上, 更好的格式
#说明: 将标准错误和标准输出发送到文件 file (追加模式)
& f1 2& f2
#说明: 将标准输出发送到文件 f1, 将标准错误发送到文件 f2
| tee files
#说明: 发送 cmd 的输出到标准输出 (通常为终端) 和 文件 files
cmd 2&&1 | tee files
#说明: 发送 cmd 的输出和错误到标准输出 (通常为终端) 和 文件 files
cmd |& tee files
#说明: 作用同上&/span&
四 shell重定向的一些高级用法
command 2& /dev/null
将标准错误重定向到空设备(黑洞设备)
command & out.put 2&&1
将command执行的标准输出和标准错误重定向到out.put(也就是说不管command执行正确还是错误,输出都打印到out.put)
exec命令可以用来替代当前shell;换句话说,并没有启动子shell,使用这一条命令时任何现有环境变量将会被清除,并重新启动一个shell(重新输入用户名和密码进入)
其中,command通常是一个shell脚本。
对文件描述符操作的时候用(也只有再这时候),它不会覆盖你当前的shell
#!/bin/bash
#file_desc
exec 3&&0 0&name.txt
read line1
read line2
echo $line1
echo $line2其中:首先,exec 3&&0 0&name.txt的意思是把标准输入重定向到文件描述符3(0表示标准输入),然后把文件name.txt内容重定向到文件描述符0,实际上就是把文件name.txt中的内容重定向到文件描述符3。然后通过exec打开文件描述符3;
然后,通过read命令读取name.txt的第一行内容line1,第二行内容line2,通过Exec 0&&3关闭文件描述符3;
最后,用echo命令输出line1和line2。最好在终端运行一下这个脚本,亲自尝试一下。
exec 3&&test.
#打开test.sh可读写操作,与文件描述符3绑定
while read line&&3
done#循环读取文件描述符3(读取的是test.sh内容)
exec 3&&-#关闭文件的,输入,输出绑定
五 bash shell 重定向的几个特殊文件
/dev/stdin 文件描述符 0 的复制品
/dev/stdout 文件描述符 1 的复制品
/dev/stderr 文件描述符 2 的复制品
/dev/fd/n 文件描述符 n 的复制品
/dev/tcp/host/port Bash 在 port 打开到 host 的 TCP 连接
/dev/udp/host/port Bash 在 port 打开到 host 的 UDP 连接
转自:http://www.jb51.net/article/49014.htm
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
(2)(7)(18)(5)(16)(1)(1)(7)(12)(19)(13)(8)(39)(65)(27)(11)(11)(2)(8)(32)(17)(9)(52)(33)(10)

我要回帖

更多关于 stm8和stm32的区别 的文章

 

随机推荐