Bash 使用超时将输出写入文件会导致错误

标签 bash

我使用此脚本来监控 iBeacon 蓝牙设备,它按预期工作。

sudo beacon scan -c

但是我最近将其更改为仅运行几秒钟并将结果输出到文件中,如下所示:

sudo timeout 5 beacon scan -c > result.txt

问题是,这不会输出任何内容,命令中可能存在错误。另外,将错误流写入文件也会给我一个错误。

sudo timeout 5 beacon scan -c &> result.txt

result.txt的内容:

Set scan parameters failed: Input/output error

感觉 bash 正在尝试将 &> result.txt 作为参数应用于 beacon scan 命令。我不太擅长 bash,所以可能有一个简单的解决方案来解决这个问题,但我还没有找到!

最佳答案

一些设计为用 ctrl-c 中断的程序在用 sigterm 终止时表现不一样,这是默认情况下超时将发送的内容。尝试使用选项 -s INT 来让超时发送 sigint。

关于Bash 使用超时将输出写入文件会导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28779492/

相关文章:

bash脚本: extracting and converting files

linux - 每当输出包含一些字符串时检查。并将其添加到逻辑 if 语句中?

linux - 如何将查找的输出通过管道传输到 pdf 查看器

Linux ssh bash fork 重试 : no child processes

linux - 为所有后续调用更改 shell 内置函数(例如 echo)的定义,但仅限于当前 shell 的范围内

bash - 检查每个进程和子进程的内存

bash - 可以在 Bash 中扩展函数吗?

linux - mac/linux 上的 zip 命令选项

bash - 可以在 iex 之外使用内省(introspection)功能吗?

Bash Echo 转义序列