通过管道从子shell获取退出代码

2024-04-22

我怎样才能获得退出代码wget来自子shell进程?

所以,主要问题是$?等于0。哪里可以$?=8成立?

$> OUT=$( wget -q "http://budueba.com/net" | tee -a "file.txt" ); echo "$?"
0

它的工作原理无需tee, 实际上。

$> OUT=$( wget -q "http://budueba.com/net" ); echo "$?"
8

But ${PIPESTATUS}数组(我不确定它与这种情况有关)也不包含该值。

$> OUT=$( wget -q "http://budueba.com/net" | tee -a "file.txt" ); echo "${PIPESTATUS[1]}"    

$> OUT=$( wget -q "http://budueba.com/net" | tee -a "file.txt" ); echo "${PIPESTATUS[0]}"
0

$> OUT=$( wget -q "http://budueba.com/net" | tee -a "file.txt" ); echo "${PIPESTATUS[-1]}"
0

所以,我的问题是 - 我怎样才能得到wget的退出代码通过tee和子壳?

如果有帮助的话,我的 bash 版本是4.2.20.


通过使用$()您正在(有效地)创建一个子shell。就这样PIPESTATUS您需要查看的实例仅在您的子 shell 内可用(即在$()),因为环境变量不会从子进程传播到父进程。

你可以这样做:

  OUT=$( wget -q "http://budueba.com/net" | tee -a "file.txt"; exit ${PIPESTATUS[0]} );
  echo $? # prints exit code of wget.

您可以使用以下方法实现类似的行为:

  OUT=$(wget -q "http://budueba.com/net")
  rc=$? # save exit code for later
  echo "$OUT" | tee -a "file.txt"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过管道从子shell获取退出代码 的相关文章

  • 获取当前时间(以小时和分钟为单位)

    我正在尝试从系统收集信息 并且需要获取当前时间 以小时和分钟为单位 目前我有 date awk print 4 输出如下 16 18 54 怎样才能把秒数去掉呢 提供格式字符串 date H M Running man date将给出所有格
  • 为什么我不能在 while 循环内评估?

    我想在循环中创建 bash 别名 其中循环从命令读取行 为了逐行读取输出 我相信我需要将输出通过管道传输到read 然而 当我这样做时 别名不存在 如果我将以下内容包含在我的 bashrc for x in a1 a2 do eval al
  • Bash 脚本重定向不起作用,为什么? [复制]

    这个问题在这里已经有答案了 我最近在 bash 脚本中发现了意外行为 我想在解决它之前先了解它 这是一个简化的示例 bin sh SCRIPT tmp echoscript sh gt gt tmp log bin sh SCRIPT ec
  • 从 bash 脚本返回值

    我想创建一个返回值的 Bash 文件 意思是 在脚本 script a bash 中我有一定的计算 脚本 script b bash 会调用它 script a bash return 1 5 script b bash a value s
  • 远程 ssh 命令:第一个回显输出丢失

    我试图通过 ssh 1 liner 调用在远程机器上运行多个命令 方法是将它们指定为传递给 bash c 的分号分隔字符串 它适用于某些情况 但不适用于其他情况 看一下这个 Note the echo 1 output is lost ba
  • bash 别名中允许使用哪些字符[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我最近添加了 alias cd alias cd alias cd 到我的 bash aliases 文件 玩弄这个 我注意到在别名时 被
  • 如何从 C 文件更改终端中的目录

    如何从 C 程序更改将在终端上生效的目录 实际上不要告诉 system 函数或 chdir 函数 这些仅适用于 C 中的进程或子 shell 假设我正在从 bash shell 执行一个 C 程序 其进程 ID 为 10223 那么 我可以
  • 如何摆脱每个新终端会话上运行的某些内容?

    我正在使用狮子 我在每个新的终端会话上都会输出一个错误 bash rvm add to path command not found 这是一个几乎全新的用户帐户 RVM 安装在计算机上的另一个帐户上 bashrc 和 bash profil
  • -bash: gulp: 在 Mac 中找不到命令

    我尝试在 mac 中安装 gulp 如下所示 Is iMac itop npm root Users itop node modules Is iMac itop npm config set prefix usr local Is iMa
  • 如何“grep”连续流?

    可以用吗grep在连续的流中 我的意思是有点tail f
  • 参考当前命令的先前参数

    例如 我想执行以下操作 mv xxxx xxxx bak 我知道我可以使用这个命令 mv xxxx bak 我认为这在某种程度上并不直接 如果我能做到这一点那就太好了 mv xxxx 1 bak 有时我需要这样 echo xxxx yyyy
  • Bash 中 $() 和 () 之间的区别

    当我打字时ls l echo file 支架的输出 这只是简单的回显 被获取并传递到外部ls l命令 就等于简单的ls l file 当我打字时ls l echo file 我们有错误 因为不能嵌套 内部外部命令 有人可以帮助我理解之间的区
  • Bash - 如何将参数传递给通过标准输入读取的脚本

    我正在尝试从标准输入执行脚本并将参数传递给它 有办法做到吗 假设我有以下内容 cat script sh bash 我如何将参数传递给脚本 我不想这样做 bash script sh arguments 也不是这个 script sh ar
  • 将所有脚本参数复制到另一个变量

    我需要复制所有脚本参数并将它们传递给另一个脚本 我尝试这样做 args printargs sh args echo printargs sh args 但在这种情况下 如果我使用包含空格的参数调用我的父脚本 例如 script sh ar
  • 变量作为 bash 数组索引?

    bin bash set x array counter 0 array value 1 array 0 0 0 for number in array do array array counter array value array co
  • 子 shell 何时继承其父 shell 环境?

    什么情况下将shell的环境传递给子shell 子 shell 始终从父 shell 获取所有变量 man bash将描述所有使用子shell的情况 主要是 command command command and command 所谓环境只
  • 退出 bash 脚本但保持进程运行

    我正在运行服务器 需要使用参数执行以下命令 这些脚本目前工作得很好 但问题是当我运行脚本时我无法返回到控制台 它在控制台中保持运行 如果我强行停止它 那么该过程也会停止 我想继续运行该进程并返回到控制台 bin sh php home st
  • ANSI 转义码在行尾有奇怪的行为

    重现步骤 考虑以下 shell 命令 echo e e 41mTest nTest2 e 0mTest3 它打印Test并在下一行中Test2具有红色背景 使用 ANSI 转义码 Test2后面直接是Test3这是无色的 行为 第一次执行此
  • 通过 SSH 将变量传递给远程脚本

    我正在通过 SSH 从本地服务器在远程服务器上运行脚本 首先使用 SCP 复制该脚本 然后在传递一些参数时调用该脚本 如下所示 scp path to script server example org another path ssh s
  • 从 bash 脚本运行节点

    很简单 我正在尝试使用 cron 自动运行 nodejs 脚本 但是脚本本身似乎无法运行该文件 我的脚本很简单 usr bin env node node var node assets js update js 但是 在运行此命令时 它返

随机推荐

  • XPath 和 Regexp 哪个更快?

    我正在为 firefox 制作一个附加组件 它使用 ajax 加载一个 html 页面 附加组件有它的 XUL 面板 现在 我没有寻找创建document对象并将ajax请求内容放入其中 然后使用xPath找到我需要的内容 相反 我加载内容
  • 用于云服务“沙盒”的 SecurityManager

    All 我正在设计一个基于云的服务 该服务将提供执行客户提交的一些 插件 代码的选项 为了使这项工作正常进行 插件不能威胁系统完整性或有能力访问其他客户端的数据 这一点至关重要 理想情况下 我希望客户端能够提交一个简单的 jar 文件 包含
  • 我应该为 Windows 选择 ActivePerl 还是 Strawberry Perl? [复制]

    这个问题在这里已经有答案了 我对 Perl 完全陌生 但我想尝试一下 我读到了有关 Windows 平台的两个竞争对手的发行版 我猜有just其他操作系统上的 Perl 维基百科 http en wikipedia org wiki Per
  • .NET Core 锁定文件

    我有一个 ASP NET Core 应用程序 我通过运行命令来运行应用程序 dotnet run 当我构建此 ASP NET Core 应用程序时 我在五分之一的情况下会看到以下错误 C error CS2012 无法打开 C bin De
  • Swift:可编码 - 提取单个编码密钥

    我有以下代码来提取编码密钥中包含的 JSON let value try decoder decode String Applmusic self from 0 applmusic 这成功处理了以下 JSON applmusic code
  • Android 博客应用程序,我应该使用 Sharedpreferences 还是 Intents?

    我正在构建一个android应用程序 当前用户的后续页面是可点击的 我保存点击的页面id并将其传递给打开相应的页面 打开后 用户可以查看关注者列表 页面内的帖子等 这是包含所有页面子级的根节点 数据库 Firebase 结构 pageDat
  • GO Websocket 向所有客户端发送消息

    这段代码一切正常 为了更好的阅读而缩短了它 When Client1向服务器发送请求 服务器立即响应他 但是 其他客户端看不到响应消息 所以我想更进一步 当客户端向服务器发送请求时 服务器会响应所有客户端 以便所有客户端都可以看到该消息 我
  • 尝试在Python中将wav文件转换为文本时出现wave.Error:known format:3

    我需要从麦克风录制音频并将其转换为文本 我已经使用从网上下载的几个音频剪辑尝试了此转换过程 效果很好 但是 当我尝试转换从麦克风录制的音频剪辑时 出现以下错误 回溯 最近一次调用最后一次 文件 C Users HP AppData Loca
  • Angular2 CanActivate 除一条路线之外的所有路线的守卫

    我知道我们可以将位于一个模块中的路线分组 像那样 canActivate AuthGuard children path children path crises component ManageCrisesComponent path h
  • 如何防止 java.lang.NumberFormatException: 对于输入字符串:“N/A”?

    在运行我的代码时 我得到了NumberFormatException java lang NumberFormatException For input string N A at java lang NumberFormatExcepti
  • 将统计数据整理成时间块

    我正在尝试为MySQL 制定一条SQL 语句 我有一系列服务器的一系列统计数据 每半小时报告一次 我有一个统计表 其中的列与此类似 server varchar 64 time datetime bytesIn int bytesOut i
  • 在领域表中选择随机行

    我想从领域表中选择一个随机行 就像是 SELECT FROM table ORDER BY RANDOM LIMIT 1 像这样的事情就可以了 是吗 Random random new Random RealmResults
  • 使用底图扭曲图像保持透明度

    我有一张 RGBA png 地图 所有海洋都是透明的 我想在北极立体投影中使用底图 并使用带有扭曲图像的地图 当我想保留透明度时 透明度会丢失并被黑色取代 我能做些什么 我的最终目标是在海洋中绘制颜色网格 然后在其上方绘制透明地图 from
  • 如何在 SwiftUI TextField 中将文本加粗?

    从 Xcode 11 2 1 开始 SwiftUI 中的文本字段没有内置的字体粗细修饰符 我们如何在不将 UITextField 扩展为 UIViewRepresentable 的情况下引入 font weight 使用与 SwiftUI
  • package-lock.json 中的 `"dev" true` 是做什么用的?

    什么是 dev true意味着在package lock json file 就我而言 当我执行时它会自动更新npm运营 我们怎样才能去除它呢 所以回答你的第一个问题 dev true in package lock json意味着这个依赖
  • Qt、QML 和 Windows 8 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我一直对Qt框架引入的QML很好奇 但从未有机会使用它 但现在随着 Windows 8 的到来 基于旧式小部件的界面将变得过时 只是我
  • Tkinter:在主循环中调用事件

    如何调用 tkinterevent来自一个单独的对象 我正在寻找类似 wxWidgets 的东西wx CallAfter 例如 如果我创建一个对象 并将我的对象传递给它Tkroot 实例 然后尝试从我的对象调用该根窗口的方法 我的应用程序锁
  • Rest API 和 Restful Web 服务之间的区别

    我是网络服务新手 有人可以帮助我理解 REST API 和 java 中的 Restful Web 服务之间的区别吗 我开发了一个仅基于 servlet 和 jsp 的 Web 应用程序 现在必须使用 REST API 开发相同的应用程序
  • 使用Prepared Statement,如何返回插入行的id?

    我想检索数据库中插入行的 ID 但我不知道该怎么做 我尝试使用 SQL 子句返回RETURNING id 但不起作用 插入行后如何返回id 拨打电话后execute 准备语句上的方法 插入行的 id 将在insert id属性 pstm g
  • 通过管道从子shell获取退出代码

    我怎样才能获得退出代码wget来自子shell进程 所以 主要问题是 等于0 哪里可以 8成立 gt OUT wget q http budueba com net tee a file txt echo 0 它的工作原理无需tee 实际上