[shell]管道连接的命令判断返回值】的更多相关文章

场景: 在bash执行管道连接的命令,需要获取到各个命令的返回值用于判断 在脚本中我们可能需要将执行结果打印到屏幕,同时保存在文件中供后面分析用,写出如下的命令 command 2>&1 | tee out.txt ST=$? 发现不管command是否执行成功,ST的值都是0,如何解决这个问题呢 解决方式: 1,set -o pipefail 设置pipefail选项,这样在执行管道连接的命令时,只要管道连接的命令中任何一个返回值不为0,则整个表达式返回值不为0 (base) $ >…
1.获取shell函数调用的返回值: #!/bin/sh info() { cat jlb.sh } res=`info` echo "state: "$? echo "res: "${res} 说明:res=`info`这一行为调用函数info,里面的符号`不是单引號,而是Esc按键以下的那个.另外$?返回的为上一条命令的运行状态,不是返回值. 2.获取shell命令的返回值,原理同上,比如: #!/bin/sh info=`cat jlb.sh` echo &q…
bash命令行返回值和展开 标签(空格分隔): bash,命令,状态,展开 1.命令状态结果和执行结果 (1)命令执行的状态返回值,命令执行完成之后,其执行状态结果值保存于bash的特殊状态变量$?中. 0:成功 1-255:失败 [root@yumc66 ~]# date 2016年 12月 20日 星期二 11:57:10 CST [root@yumc66 ~]# echo $? 0 [root@yumc66 ~]# $? -bash: 0: command not found [root@…
Linux命令的返回值 对于某些监测脚本和探测命令蛮有用的: 在 Linux 下,不管你是启动一个桌面程序也好,还是在控制台下运行命令,所有的程序在结束时,都会返回一个数字值,这个值叫做返回值,或者称为错误号 ( Error Number ). 在控制台下,有一个特殊的环境变量 $?,保存着前一个程序的返回值,我们可以试试: $ ls *.pngDiagram1.png  eqn.png         peazip.pngeqn4.png      Mandelbrot.png  x2.png…
一.SSH Secure Shell Client连接Linux 命令行显示中文乱码问题 linux 设置系统语言 修改 /etc/sysconfig/i18n 文件,如 LANG="en_US.UTF-8",xwindow会显示英文界面, LANG="zh_CN.GB18030",xwindow会显示中文界面. 还有一种方法 cp /etc/sysconfig/i18n $HOME/.i18n 修改 $HOME/.i18n 文件(vim  $HOME/.i18n)…
转自:http://blog.sina.com.cn/s/blog_6739945f0100zt4b.html 在 Linux 下,不管你是启动一个桌面程序也好,还是在控制台下运行命令,所有的程序在结束时,都会返回一个数字值,这个值叫做返回值,或者称为错误号 ( Error Number ). 在控制台下,有一个特殊的环境变量 $?,保存着前一个程序的返回值,我们可以试试: $ ls *.pngDiagram1.png  eqn.png         peazip.pngeqn4.png   …
转摘自:http://hi.baidu.com/suchshow/item/230255b6caab369218469732 在 Linux 下,不管你是启动一个桌面程序也好,还是在控制台下运行命令,所有的程序在结束时,都会返回一个数字值,这个值叫做返回值,或者称为错误号 ( Error Number ). 在控制台下,有一个特殊的环境变量 $?,保存着前一个程序的返回值,我们可以试试: $ ls *.png Diagram1.png  eqn.png         peazip.png eq…
背景: 小鱼最近再调一个小工程时,需要对返回值进行处理(返回值如下),有的返回值 有data1 有的没有:需要做个判断,判断是否含有该key值 返回值: res1 = {"result":1,"data":{"data1":111}} res2 = {"result":1,"data":111} 在网上查到,可以使用 res1["data"].keys() 判断 key值存不存在 ,但需…
[root@m01 ~]# expr 1 + 12[root@m01 ~]# echo $?0[root@m01 ~]# echo 1 - 51 - 5[root@m01 ~]# expr 1 - 5-4[root@m01 ~]# echo $?0[root@m01 ~]# expr 1 + -10[root@m01 ~]# echo $?1[root@m01 ~]# expr 1 + fexpr: non-numeric argument[root@m01 ~]# echo $?2…
1.break.continue.exit.return的对比 break.continue在条件语句和循环语句中用于控制程序走向: exit用于终止所有语句并退出当前脚本,还可以返回上一次程序或命令的执行状态值给当前shell: return用于在函数内部返回函数执行的状态值. 2.基础示例 (1)break [root@codis-178 ~]# cat 12_1.sh #!/bin/bash if [ $# -ne 1 ];then echo $"usage:$0 {break|conti…
#!/bin/sh #./test是c程序,该程序 返回0 ./test OP_MODE=$? echo $OP_MODE # $? 显示最后命令的退出状态.0表示没有错误,其他任何值表明有错误.…
如题目,arduino中连接温湿度传感器,用的是一个github开源项目,地址:点击打开,其实这个就是一个封装好的库,下载后把解压的文件夹复制到Arduino目录下的librarys文件夹内,重启Arduino,到此就算是到库成功了.下面看电路连接图: 注意DATA和SCK两个脚对于Arduino上的数字引脚,在写程序的时候要用到,如图所示:将 SHT15 的 Data 脚接到 pin11, SCK 接到 pin10 电路图片: 导入库的路径: 其实库里面提供了一个实例代码,你可以直接拿过来使用…
#!/bin/bash - function mytest() { echo "arg1 = $1" if [ $1 = "1" ] ;then return 1 else return 0 fi } if mytest 2; then echo "aaaaaaaaaa" fi 执行结果: 稍微改一下 #!/bin/bash - function mytest(){ echo "arg1 = $1" if [ $1 = &qu…
procedure CheckResult(b: Boolean); begin if not b then raise Exception.Create(SysErrorMessage(GetLastError)); end; function RunDOS(const Prog, CommandLine, Dir: string; var ExitCode: DWORD): string; var HRead, HWrite: THandle; StartInfo: TStartupInfo…
centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件.目录属性  shell数组简单用法 $( ) 和${ } 和$(( )) 与  sh -n  sh -x  sh -v 第三十五节课 Shebang/Sha-bang在计算机科学中, Shebang (也称为Hashbang)是一个由井号和叹号构成的字符串行(#!), 其出现在文本文件的第一行的前两个字符. 在文件中存在Shebang的情况下, 类…
Shell函数返回值,常用的两种方式:return,echo 1) return 语句shell函数的返回值,可以和其他语言的返回值一样,通过return语句返回.示例1: [devadmin@swarm1 pos-gateway]$ [devadmin@swarm1 pos-gateway]$ [devadmin@swarm1 pos-gateway]$ #!/bin/sh [devadmin@swarm1 pos-gateway]$ function mytest() > { > echo…
BASH SHELL中,通常使用 $? 来获取上一条命令的返回码,对于管道中的命令,使用$?只能获取管道中最后一条命令的返回码,例如: 下面的例子 /djdjal/dajiojidksj.file是一个不存在的文件 cat /djdjal/dajiojidksj.file|cat   第一个cat失败,第二个cat成功,所以$?的值为0   这种情况下,可以使用 $PIPESTATUS来获取管道中每个命令的返回码. 注意:   1.PIPESTATUS 是一个数组,第一条命令的返回码存储在${P…
centos  shell脚本编程2 if 判断  case判断   shell脚本中的循环  for   while   shell中的函数  break  continue  test 命令   第三十六节课 return用在函数中exit用在shell当中 直接退出整个脚本,整个子shell或当前shellbreak退出循环 上半节课 if 判断case判断shell脚本中的循环 下半节课 for whileshell中的函数breakcontinue 课程大纲(继续上节课的) 7. if…
同步发表:http://blog.hacktons.cn/2017/12/13/shell-func-return/ 背景 通过shell编程,写一些工具批处理的时候,经常需要自定义函数.更复杂点的情况下,可能有需要返回一个值. 由于在shell的世界中,并不像其他编程语言,它不支持我们所熟悉的方法返回.本文一起总结一下如何优雅的解决返回值问题? 测试程序 我们一般通过$?来获取上一个语句的输出.看一下下面得测试语句: 新建testReturn脚本 returnString(){ return…
BASH的PS1变量控制提示符相关的东西,善用它可以让BASH用起来舒服很多 提示符颜色 提示符显示上一个命令的返回值(exit code),并根据是否0调整颜色 提示符生成的时间(这样就知道上一条命令是什么时候执行完成的,执行时间长的任务时有用) 你有没有遇到过,打开了很多个终端窗口,分不清哪个用于哪个?同样是通过PS1可以做到 终端窗口标题显示当前目录 终端窗口标题显示当前正在执行的命令 效果图(不含时间): 提示符前面的( 0)是上一个命令的返回值. 第二个数字是当前BASH进程的PID.…
RunTime执行命令得到返回值 我们有在好好几篇博客里提到过RunTime,比如 JAVA之旅(二十三)--System,RunTime,Date,Calendar,Math的数学运算 Android源码浅析(五)--关于定制系统,如何给你的Android应用系统签名 而今天同样的,来聊聊RunTime,我们执行这些命令的时候获取到我们的返回值,实际上是比较简单的,但是RunTime的局限性也有点大,很多都没有权限.我们接着看,我现在在终端输入 adb version 看下会输出什么 那我问你…
背景:定义了一个函数,比对本地和线上服务器集群数量差别,想要获取不同集群的个数.shell和其他语言的函数返回值还是差别挺大的.   定义一个函数 functionname(){      操作内容      echo 输出内容      return 返回值 #返回值可有可不有 }   获得函数的返回值   1.函数默认是将标准输出传递出来,不是返回值. 所以如果直接调用functionname,实际上是将输出传递回来 例如: a=`functionname` 将函数functionname的…
先看例子 #include <stdio.h> #include <stdlib.h> #include <sys/wait.h> #include <sys/types.h> int main() { pid_t status; status = system("./test.sh"); == status) { printf("system error!"); } else { printf("exit…
例: status = system("./test.sh"); 1.先统一两个说法: (1)system返回值:指调用system函数后的返回值,比如上例中status为system返回值 (2)shell返回值:指system所调用的shell命令的返回值,比如上例中,test.sh中返回的值为shell返回值.   2.如何正确判断test.sh是否正确执行? 仅判断status是否==0?或者仅判断status是否!=-1?    都错!   3.man中对于system的说明…
我自己接触Linux主要是大学学习的Turbolinux --> 根据<鸟哥的Linux私房菜:基础篇>(第三版) --> 马哥的就业班课程.给我的感觉是这些课程对于bash的讲解,理论上是不够的,但是限于时间.篇幅和精力,确实无法讲解的足够深入.在接触了骏马金龙的博客以及bash官方站点后,就会理解骏马兄说的“平常我们学的只是bash的形,而不是bash的神”.最近在写这个系列的学习笔记,经常查阅bash官方手册,真的是有种醍醐灌顶的感觉,但是限于能力和进度问题,有些问题暂且无法…
服务器的开发和管理离不开 Bash 脚本,掌握它需要学习大量的细节. set命令是 Bash 脚本的重要环节,却常常被忽视,导致脚本的安全性和可维护性出问题.本文介绍它的基本用法,让你可以更安心地使用 Bash 脚本. 一.简介 我们知道,Bash 执行脚本的时候,会创建一个新的 Shell. $ bash script.sh 上面代码中,script.sh是在一个新的 Shell 里面执行.这个 Shell 就是脚本的执行环境,Bash 默认给定了这个环境的各种参数. set命令用来修改 Sh…
今天,用os.system('cmd')分别在windows和linux平台上执行同一ping命令,命令执行失败时返回码不同,windows为1,而linux下返回为256,如下: linux下: >>> import os,sys >>> os.system('ping -c 1 192.168.1.1 > /dev/null') 0 >>> os.system('ping -c 1 192.168.1.2 > /dev/null') 2…
对于system这个函数的功能早就有一定了解,读书期间,就学习了UNIX系统编程这本书,后来买了APUE.我这个人总是有好读书不求甚解的毛病.对于system函数只知其一,不知其二.后来被人问起相关的问题,结果丢了脸.书到用时方恨自己不求甚解.今天仔细探查了下system的一些特性.       APUE这本书,对system这个函数已经将的比较明白了,只是它的相关知识稍显分散.最开始我是去网上找的资料,自己写的测试代码,可是还是有很多迷惑的地方.后来才拿起APUE ,好好读了第八章和第十章的相…
之前两篇博客springMVC源码分析--HandlerMethodReturnValueHandler返回值解析器(一)和springMVC源码分析--HandlerMethodReturnValueHandlerComposite返回值解析器集合(二)我们分别介绍了返回值处理器相关的东西,接下来我们选取一个简单的实现类ViewNameMethodReturnValueHandler来简单介绍一下返回值处理操作. 1.返回值为jsp页面地址 @RequestMapping(value = "i…
在上一篇博客springMVC源码分析--HandlerMethodReturnValueHandler返回值解析器(一)我们介绍了返回值解析器HandlerMethodReturnValueHandler,接触到了HandlerMethodReturnValueHandlerComposite,简单来说HandlerMethodReturnValueHandlerComposite其实就是springMVC提供的所有的HandlerMethodReturnValueHandler集合,它定义了…