首页 > 解决方案 > 如何修复 bash 错误 - /dev/tty 没有这样的设备或地址

问题描述

作为问题的细节,我在执行我的 bash 脚本时遇到了这个错误

确切地说,我得到以下错误

bash: line 26: /dev/tty: No such device or address
bash: line 29: /dev/tty: No such device or address

这里分别是导致问题的脚本中相关的第 26 行和第 29 行

read -e -p "Paste the links : " links </dev/tty
read -e -p "Enter your input : " sub </dev/tty

如果有人想知道,我不能简单地从第 26 行和第 29 行删除对 </dev/tty 的写入,它会导致不同的问题。所以基本上我需要修复或获得替代写入 /dev/tty

我正在通过运行执行我的脚本 - curl raw_link | bash

最好我想要一个只需要我编辑现有脚本的解决方案。我不想在本地保存脚本后运行脚本或使用任何其他方式执行它curl raw_link | bash

ls -l /dev/tty 返回以下内容

crw-rw-rw- 1 root root 5, 0 Aug  8 09:28 /dev/tty

ls -l <​​/dev/tty 返回以下内容

/bin/bash: /dev/tty: No such device or address

另外我想提一下,这个问题似乎并不是在每台机器上都发生,我打算在 Google Colab 上使用这个脚本,我肯定会遇到这个问题

标签: linuxbashcurlgoogle-colaboratorytty

解决方案


要修复 bash 错误,您可以尝试以下解决方法:

tty=$(readlink /proc/$$/fd/2)
read ... < $tty

$tty 包含实际的 tty 设备名称。


推荐阅读