微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

0>&-和0 <&-I / O重定向的区别

如何解决0>&-和0 <&-I / O重定向的区别

在下面的示例中,0>&-的工作原理是在出现输入提示时ssh-keygen命令存在。 应该不是0<&-关闭stdin)吗? 0>&-0<&-似乎都以相同的方式工作(当ssh-keygen的输入/确认提示显示关闭时)-如何解释?

user@system:~/.ssh$ ls -al test123
ls: cannot access 'test123': No such file or directory
user@system:~/.ssh$ ssh-keygen -b 2048 -t rsa -f test123 -q -N "" 0>&-
user@system:~/.ssh$
user@system:~/.ssh$ ls -al test123
-rw------- 1 user user 1823 Sep 21 08:01 test123
user@system:~/.ssh$ ssh-keygen -b 2048 -t rsa -f test123 -q -N "" 0>&-
test123 already exists.
Overwrite (y/n)? user@system:~/.ssh$
user@system:~/.ssh$
user@system:~/.ssh$ ssh-keygen -b 2048 -t rsa -f test123 -q -N "" 0<&-
test123 already exists.
Overwrite (y/n)? user@system:~/.ssh$

documentation中有:

n<&-

    Close input file descriptor n.
0<&-,<&-

    Close stdin.
n>&-

    Close output file descriptor n.

解决方法

0>&-0<&-之间没有区别。

>&-<&-之间是有区别的。

区别是:

>&-默认为n = 1

<&-默认为n = 0

在此StackExchange post

上了解更多

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。