bash - 在 bash 文件中如何传递错误消息
问题描述
我的剧本
#!/bin/bash
set -eu
usrFile="${1}"
while read -r usrCMD
do exec -e "${usrCMD}" || echo_fun "${usrCMD}"
done < "$usrFile"
echo_fun 是一个打印消息的函数。
在 echo_fun 中,我想传递命令的错误信息exec -e "${usrCMD}"
这可能吗?
解决方案
分配stdout
给变量,如如何在变量中存储标准错误中所述
然后将该变量传递给echo_fun
while read -r usrCMD; do
error=$(exec -e "$usrCMD" 2>&1 >/dev/null) || echo_fun "$usrCMD $error"
done < "$usrFile"
推荐阅读
- javascript - 为什么 const someValue = this.props.dispatch(someMethod()) 在 localhost 上运行良好,但在生产中却不行?
- docker - 运行 Heroku 容器
- php - 使用 Laravel 保护我的 REST API 的过程
- c# - 如何在 C# 中找出数字类型是有符号还是无符号
- c++ - 在 C++ 中,您需要在两个方向上重载 operator== 吗?
- c# - 如何由活动目录中的任何用户登录(无密码)
- pytorch - AttributeError:“字段”对象没有属性“词汇”
- abap - 找出ABAP程序最后执行的日期和时间?
- python - Python、机器学习和线性回归
- vb.net - 在列表框中与数学有关的变量之前添加文本时,索引超出范围错误使我的程序崩溃