“”是什么意思?

“”是什么意思?

我很难理解重定向,我们如何使用 exec <> 作为 Linux 命令,这意味着什么。你能举个例子并解释一下吗?

答案1

重定向<>运算符打开由右侧单词给出的文件进行读取和写入。其左侧的文件描述符编号(如果省略该编号,则在大多数 shell 中为 0)将连接到该文件。

例子:

$ echo Hello >file

这会将字符串写入Hello文件,后跟换行符。

$ { read -r message <&3; printf 'Got "%s"\n' "$message"; echo Good bye >&3; } 3<>file
Got "Hello"

这将打开文件以在文件描述符 3 上进行读取和写入。从文件描述符 3 读取字符串并将其打印到终端。然后一个新的字符串被写入同一个文件描述符。

$ cat file
Hello
Good bye

该文件现在包含我们在上一个命令中编写的附加字符串。该字符串被插入到换行符之后,Hello因为这是我们写入文件时文件指针所在的位置。如果之后文件中有更多数据Hello,则该Good bye字符串将覆盖其中的一些数据。

答案2

尝试用 来理解cat

您可以cat像平常一样使用:

cat > somefilecontrol+d现在你可以写一些输入,并在输入 结束后重定向>操作员一些文件

现在尝试:

cat <> somefile

cat正在做和以前一样的事情。

但不会有任何输入一些文件

现在尝试:

cat <(echo "hello world")> somefile

现在会有一些输入一些文件广泛使用重定向运算符。

相关内容