【发布时间】:2021-11-03 14:33:49
【问题描述】:
我有一个 bash 脚本,我想从中访问 /dev/tty,但只有当它可用时。
当它不可用时(在我的情况下:当我在 GitHub Actions 中运行我的脚本时)然后当我尝试访问它时,我得到 /dev/tty: No such device or address,我试图提前检测到它以避免错误并提供回退行为。
为此,我需要一个 bash 测试,它可以干净地检测到这种情况,并且可以跨平台可靠地工作(即不使用 tty 命令,它有问题 on Mac)。
我目前正在使用 [[ -e "/dev/tty" ]],但它不起作用 - 即使在 GitHub Actions 上它似乎也返回 true,似乎 /dev/tty 存在但访问它会失败。我应该改用什么?
【问题讨论】:
-
不知道为什么,但
$-在我的 bash 中包含“hBH”,而不是i,因此该示例不起作用。 -
bash 脚本想要访问 /dev/tty 的目的是什么?
-
@Philippe 从其他命令的管道内启动连接到 TTY 的 $EDITOR(因此无法直接访问 stdin/stdout)。当 /dev/tty 可用时效果很好,当它不可用时,我可以提供 OK 后备,但我需要能够检测到。
标签: linux bash macos shell tty