catalpa-bungei 发表于 2023-9-16 19:41:05

能帮我给出下面重定向语法的一些例子吗

下面这些bash 重定向语法有哪些具体例子呢?
n>&:Duplicate standard output to file descriptor n.
n<&:Duplicate standard input from file descriptor n.
n>&m:File descriptor n is made to be a copy of the output file descriptor.
n<&m:File descriptor n is made to be a copy of the input file descriptor.
&>file:Directs standard output and standard error to file.
<&-:Close the standard input.
>&-:Close the standard output.
n>&-:Close the output from file descriptor n.
n<&-:Close the input from file descriptor n.
n>&word:If n is not specified, the standard output (file descriptor 1) is used. If the digits in word do not specify a file descriptor open for output, a redirection error occurs. As a special case, if n is omitted, and word does not expand to one or more digits, the standard output and standard error are redirected as described previously.
n<&word:If word expands to one or more digits, the file descriptor denoted by n is made to be a copy of that file descriptor. If the digits in word do not specify a file descriptor open for input, a redirection error occurs. If word evaluates to -, file descriptor n is closed. If n is not specified, the standard input (file descriptor 0) is used.
n>&digit-:Moves the file descriptor digit to file descriptor n, or the standard output (file descriptor 1) if n is not specified.
n<&digit-:Moves the file descriptor digit to file descriptor n, or the standard input (file descriptor 0) if n is not specified. digit is closed after being duplicated to n.

isdkz 发表于 2023-9-16 19:41:22

1. n>&:将标准输出复制到文件描述符n上的具体例子:

将标准输出复制到文件描述符3上: ls -l >&3

2. n<&:将标准输入复制到文件描述符n上的具体例子:

将标准输入复制到文件描述符4上: sort -u <&4

3. n>&m:将文件描述符n复制到输出文件描述符的具体例子:

将文件描述符3复制到文件描述符4上: exec 4>&3

4. n<&m:将文件描述符n复制到输入文件描述符的具体例子:

将文件描述符3复制到文件描述符4上: exec 4<&3

5. &>file:将标准输出和标准错误输出到文件的具体例子:

将标准输出和标准错误输出到file.log文件中: command &> file.log

6. <&-:关闭标准输入的具体例子:

关闭标准输入: exec <&-

7. >&-:关闭标准输出的具体例子:

关闭标准输出: exec >&-

8. n>&-:关闭指定文件描述符的输出的具体例子:

关闭文件描述符3的输出: exec 3>&-

9. n<&-:关闭指定文件描述符的输入的具体例子:

关闭文件描述符3的输入: exec 3<&-

10. n>&word:将标准输出和标准错误输出重定向到指定文件的具体例子:

将标准输出和标准错误输出重定向到file.log文件: command &> file.log

11. n<&word:将指定文件描述符的输入重定向到指定文件的具体例子:

将文件描述符3的输入重定向到file.txt文件: exec 3<&0 file.txt

12. n>&digit-:将指定文件描述符的输出移动到指定文件描述符的具体例子:

将文件描述符3的输出移动到文件描述符4: exec 4>&3-

13. n<&digit-:将指定文件描述符的输入移动到指定文件描述符的具体例子:

将文件描述符3的输入移动到文件描述符4: exec 4<&3-

陶远航 发表于 2023-9-16 19:41:32

下面是一些bash重定向语法的具体例子:

1. n>&:将标准输出复制到文件描述符n:
   · 1>&2:将标准输出复制到标准错误输出。

2. n<&:将标准输入复制自文件描述符n:
   · 0<&3:将标准输入复制自文件描述符3。

3. n>&m:将文件描述符n设置为输出文件描述符m的副本。
   · 2>&1:将标准错误输出重定向到标准输出。

4. n<&m:将文件描述符n设置为输入文件描述符m的副本。
   · 0<&3:将标准输入重定向到文件描述符3。

5. &>file:将标准输出和标准错误输出重定向到文件。
   · &>/dev/null:将标准输出和标准错误输出重定向到/dev/null,即丢弃输出。

6. <&-:关闭标准输入。

7. >&-:关闭标准输出。

8. n>&-:关闭文件描述符n。

9. n<&-:关闭文件描述符n。

10. n>&word:如果未指定n,则使用标准输出(文件描述符1)。如果word中的数字未指定用于输出的文件描述符,则会发生重定向错误。
   · >&2:将标准输出重定向到标准错误输出。

11. n<&word:如果word展开为一个或多个数字,则将文件描述符n设置为该文件描述符的副本。如果word中的数字未指定用于输入的文件描述符,则会发生重定向错误。如果word评估为-,则关闭文件描述符n。如果未指定n,则使用标准输入(文件描述符0)。
   · 3<&0:将文件描述符3设置为标准输入的副本。

12. n>&digit-:将文件描述符digit移动到文件描述符n,如果未指定n,则移动到标准输出(文件描述符1)。
   · 2>&1-:将标准错误输出移动到标准输出,并关闭标准错误输出。

13. n<&digit-:将文件描述符digit移动到文件描述符n,如果未指定n,则移动到标准输入(文件描述符0)。digit在复制到n之后关闭。
   · 3<&0-:将文件描述符3移动到标准输入,并关闭文件描述符3。

请注意,这只是一些重定向语法的例子,具体使用时需要根据实际情况进行调整。
如果问题已经解决,请设置最佳答案

琅琊王朝 发表于 2023-9-17 21:36:52

以下是针对每种重定向语法的例子:

1. n>&:将标准输出复制到文件描述符n

        # 重定向标准输出和标准错误到同一个文件
    command 1>&2 log.txt
   

2. n<&:将标准输入从文件描述符n复制

        # 从文件描述符3读取输入
    command <&3
   

3. n>&m:将文件描述符n复制为输出文件描述符m的副本

        # 从文件描述符3写入输出
    command 3>&1 1>&2 2>&3 | tee log.txt
   

4. n<&m:将文件描述符n复制为输入文件描述符m的副本

        # 复制标准输入到文件描述符3
    command 3<&0
   

5. &>file:将标准输出和标准错误都重定向到文件

        # 重定向标准输出和标准错误到log.txt文件
    command &> log.txt
   

6. <&-:关闭标准输入

        # 从标准输入读取输入并关闭标准输入
    command <&0 -
   

7. >&-:关闭标准输出

        # 将输出写入文件,然后关闭标准输出
    command > log.txt >&-
   

8. n>&-:关闭文件描述符n的输出

        # 关闭文件描述符3的输出
    command 3>&-
   

9. n<&-:关闭文件描述符n的输入

        # 关闭文件描述符3的输入
    command 3<&-
   

10. n>&word:如果未指定n,则使用标准输出(文件描述符1)。如果word中的数字未指定打开用于输出的文件描述符,则会出现重定向错误。因为特殊情况,如果省略n并且word没有扩展为一个或多个数字,则标准输出和标准错误将被重定向为上述所述。

        # 将输出和错误都重定向到log.txt文件
    command &>log.txt
   
    # 将标准输出和标准错误分别重定向到log.txt和error.txt文件
    command >log.txt 2>error.txt

    # 等同于上一行命令
    command >&log.txt 2>error.txt
   

11. n<&word:如果word扩展为一个或多个数字,则表示由n表示的文件描述符将成为该文件描述符的副本。如果word中的数字未指定打开用于输入的文件描述符,则会出现重定向错误。如果word的值是“-”,则关闭文件描述符n。如果未指定n,则使用标准输入(文件描述符0)。

        # 将文件描述符3的输入复制为文件描述符4
    command 4<&3
   

12. n>&digit-:将文件描述符digit移动到文件描述符n,或者如果n未指定,则移动到标准输出(文件描述符1)。

        # 将文件描述符3的输出复制为文件描述符4,并关闭文件描述符3
    command 4>&3- 3>&-
   

13. n<&digit-:将文件描述符digit移动到文件描述符n,或者如果n未指定,则移动到标准输入(文件描述符0)。在复制到n后,会关闭digit。

        # 将文件描述符3的输入复制为文件描述符4,并关闭文件描述符3
    command 4<&3- 3<&-
   

希望这些例子能够帮助你更好地理解每种重定向语法的用法。
此内容为ChatGPT回答,如果胡说八道,请不要理会
如果对你有帮助,请设置一个最佳答案!
页: [1]
查看完整版本: 能帮我给出下面重定向语法的一些例子吗