我有一个bash shell脚本,需要ctrl-D才能打破终端.任何人都告诉我如何在shell脚本中使用它
ssh host last --->显示登录到该主机的用户列表
我有不同的主机输出附加到一个最后,当我执行这个特定的shell脚本以及其他系列的命令时,我正在使用ctrl-D来查看输出
假设我的shell脚本是myscript.sh来执行myscript.sh
./myscript.sh
CTL-d
与主机的连接已关闭
输出显示
相反,我想在我的脚本文件中使用ctrl-D
您可以尝试exec <&-
&-用于关闭文件描述符(ps:linux 中的所有内容都是一种文件...)
<&-正在关闭文件描述符 0 = stdin - 也可以写为0<&-
如果你在你的 linux 机器上打开一个普通的终端并输入exec <&-你会看到你的终端关闭/消失,就像你按下一样^D.
PS1:同样,exec >&-关闭标准输出
PS2:如果您关闭标准输入,exec <&-您可以重新打开以继续使用类似的脚本 exec </dev/tty
没有办法直接做到这一点。使用 heredoc 来代替标准输入。
./someprog.sh << EOF
something here
EOF
Run Code Online (Sandbox Code Playgroud)