鱼C论坛

 找回密码
 立即注册
查看: 615|回复: 3

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

[复制链接]
发表于 2023-9-16 19:41:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
下面这些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.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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-
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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。

请注意,这只是一些重定向语法的例子,具体使用时需要根据实际情况进行调整。
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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回答,如果胡说八道,请不要理会
如果对你有帮助,请设置一个最佳答案!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 18:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表