You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将bash中at命令的输出结果读取到变量中?

解决at命令输出无法存入变量的问题

问题原因

at命令默认将状态信息(包括警告、任务编号)输出到标准错误(stderr),而bash的命令替换$(...)仅捕获标准输出(stdout),所以你之前的命令无法将at的输出存入变量。

解决方案

将at的stderr重定向到stdout,让命令替换可以捕获到内容:

myVar=$(echo "echo 'Hello World'" | at now + 1 minute 2>&1)

执行后,你可以通过echo "$myVar"查看变量内容,会包含原输出的警告和任务信息:

warning: commands will be executed using /bin/sh
job 12 at Wed Mar 13 20:21:00 2024

可选优化:过滤警告信息

如果只需要任务编号和时间,不需要警告,可以用grep过滤掉警告行:

myVar=$(echo "echo 'Hello World'" | at now + 1 minute 2>&1 | grep -v "warning")

此时myVar仅保留job 12 at Wed Mar 13 20:21:00 2024。

内容的提问来源于stack exchange,提问作者Philipp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 06:22:11