linux - 如何在shell脚本中获取二进制执行结果?

标签 linux shell

二进制程序定义在环境变量中。运行“设置”时,我看到 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/

相关文章:

linux - 找不到 LIBBFD(缺少 : LIBBFD_BFD_LIBRARY LIBBFD_IBERTY_LIBRARY LIBBFD_OPCODES_LIBRARY LIBBFD_INCLUDE_DIRS)

linux - 是否可以查看正在运行但已修改的 bash 脚本的原始内容?

linux - Slackware 在添加新用户时创建目录

linux - 使用 ssh 在本地和远程服务器之间传输文件而无需密码验证

linux - 无法在 shell 脚本内运行 ansible 命令

regex - 将文件中与模式匹配的行替换为空行

java - cmake找不到java,但是已经安装了

linux - 根据另一列从 .csv 文件中提取特定列

linux - 将 Bash 变量传递给 awk 脚本

mysql - 使用Shell脚本远程拉取Mysql数据