为什么下面的shell脚本函数失败了?

为什么下面的shell脚本函数失败了?
_exec()
{
    CMD="$1"
    echo "Executing command: $CMD"
    EXEC_OUT=`$CMD`
    EXEC_RET=$?
}
_exec  "hostname|cut  -d\".\" -f1 "
SHORT_NAME=$EXEC_OUT
if [ $EXEC_RET -ne 0 ];then
    echo "Unable to determine shortname of server"
else
    echo $EXEC_OUT
fi

答案1

您需要在 exec 函数上评估您的 cmd。

EXEC_OUT=`eval $CMD`

但不确定为什么。我认为这是因为单个变量中有多个命令。也许有更多经验的人可以证实这一点。

参见 eval手册页

相关内容