我正在尝试使用 read 从文件描述符中读取,如下所示:
read -u fd
如在这个链接中。
这是我在 bash 脚本中使用的代码:
MESSAGE=$(read -u $NODE_CHANNEL_FD)
echo " parent message => $MESSAGE" >&2
确切的错误信息:
read: Illegal option -u
有人知道这可能是什么吗?
答案1
该错误消息表明您实际上没有使用 执行脚本bash
。
使脚本可执行并#!
在脚本的第一行添加适当的 -line,例如
#!/bin/bash
或者,显式执行脚本bash
:
$ bash script.sh
您应该将sh
和bash
视为实现单独的语言,并为您正在编写的脚本使用正确的解释器。在这种情况下,您将使用read
with 该-u
选项。这最初是ksh
对标准read
规范的扩展,并且也在bash
和中实现zsh
。因此,您需要使用bash
,zsh
或运行脚本ksh
。
如何知道何时使用sh
以及何时使用bash
其他 shell?很简单,您可以了解其sh
工作方式以及其他 shell 添加的其他功能。