linux - 如何修复 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 上使用这个脚本,我肯定会遇到这个问题
解决方案
要修复 bash 错误,您可以尝试以下解决方法:
tty=$(readlink /proc/$$/fd/2)
read ... < $tty
$tty 包含实际的 tty 设备名称。
推荐阅读
- sahi - Sahi 错误 5xx 我怎样才能绕过这个错误
- c# - 是否可以仅在 C# 类中获取已初始化的属性
- service-worker - 如何让服务人员缓存下一页?
- laravel - 为什么在代客运行时laravel安装程序不起作用
- oozie - 如何从其中一项操作中找到 oozie 工作 ID - 应用程序 ID?
- azure - CA API 网关迁移到 Azure API 网关
- mountebank - mountebank如何将2个冒名顶替者合并到一个文件中
- c - 访问位于另一个指针结构中的指针结构中的成员的问题
- django - Django url 的优先级
- docker - 丢失最近添加的管理器后,Docker swarm 不会重新启动