如何在变量中存储bash命令的输出

Tec*_*1an 0 macos bash

您好我试图在变量中存储OS X命令,我遇到了问题.这是我的代码:

#! /bin/bash
Output=$(dscl . -read /Users/root AuthenticationAuthority)
Check="No such key: AuthenticationAuthority"  

if [ "$Output" = "$Check" ]
    then
       echo "OK"
      else
    echo "FALSE"
fi
Run Code Online (Sandbox Code Playgroud)

之前我已经使用诸如"defaults read ...."之类的命令完成了这个工作并且它工作正常但是dscl.-read不会将输出存储在变量中.有任何想法吗?

小智 5

失败时,dscl命令以及所有标准shell命令在stderr上输出错误消息,而$(...)只捕获stdout.

您必须首先合并两个流:

Output=$(dscl . -read /Users/root AuthenticationAuthority 2>&1)
Run Code Online (Sandbox Code Playgroud)