二进制程序定义在环境变量中。运行“设置”时,我看到 CHECK_MASTER=/usr/local/bin/check_master。
在终端中,运行$CHECK_MASTER,我们可以看到终端上显示0或1。 在 shell 脚本中,我可以运行/usr/local/bin/check_master | tee/dev/tty,结果显示在终端上,为 0 或 1。
问题: (1) 如何获取执行/usr/local/bin/check_master的结果并将结果赋值给shell脚本中的$VAR这样的变量? (2) 与(1)类似,如何在shell脚本中使用$CHECK_MASTER而不是使用文件路径?
我试过重定向标准输出、标准错误、VAR=$($CHECK_MASTER)。它们都不起作用。
最佳答案
从问题来看,check_master 似乎会将 0 或 1 发送到 stderr。将 stderr 重定向到 stdout 应该有所帮助:
CHECK_MASTER=...
VAR=$($CHECK_MASTER 2>&1)
关于linux - 如何在shell脚本中获取二进制执行结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58775832/