将标准输入和标准输出重定向到 shell 中的同一设备

问题描述 投票:0回答:1

我正在寻找一种将标准输入和标准输出重定向到同一字符设备的方法。我知道我可以手动完成:

rz </dev/ttyUSB0 >/dev/ttyUSB0

但是,感觉重复。最重要的是,shellcheck 抱怨道:

确保不要在同一个管道中读写同一个文件

将 stdout 和 stderr 重定向到同一个文件非常容易 (

cmd >file 2>&1
),但它不适用于 stdin 和 stdout:

$ rz >/dev/ttyUSB0 <&1
rz waiting to receive.Retry 0: Got TIMEOUT
Retry 0: Got TIMEOUT
bash serial-port
1个回答
0
投票

我能够提供一个适用于 bash 和 dash 但不适用于 Fish 的解决方案:

rz <>/dev/ttyUSB0 >&0

<>
以读写模式打开文件。它用作标准输入。
>&0
将 stdout 重定向到 stdin 使用的文件描述符。

© www.soinside.com 2019 - 2024. All rights reserved.