首页 > 解决方案 > 在 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}"

这可能吗?

标签: bashshell

解决方案


分配stdout给变量,如如何在变量中存储标准错误中所述

然后将该变量传递给echo_fun

while read -r usrCMD; do
    error=$(exec -e "$usrCMD" 2>&1 >/dev/null) || echo_fun "$usrCMD $error"
done < "$usrFile"

推荐阅读