dai*_*isy 4 shell scripting bash io-redirection
下面的脚本是什么意思?
exec 4<&0 0</etc/XX/cfg
read line1
exec 0<&4
Run Code Online (Sandbox Code Playgroud)
它将 fd0 重定向到 fd4,并将“/etc/XX/cfg”重定向到 fd0。
那么为什么read仍然有效,那不应该是空的吗?
它将 stdin (FD0) 重定向到 FD4,从重定向/etc/XX/cfg到 FD0,从 FD0 读取一行,然后将 FD4 移回 FD0。简而言之,它保存、替换和恢复标准输入,同时从中间的文件中读取一行。
read line1 < /etc/XX/cfg 会容易得多,但无法仅根据显示的代码判断它是否是有效的替代品。