| # This program is free software: you can redistribute it and/or modify |
| # it under the terms of the GNU General Public License as published by |
| # the Free Software Foundation, either version 3 of the License, or |
| # (at your option) any later version. |
| # |
| # This program is distributed in the hope that it will be useful, |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| # GNU General Public License for more details. |
| # |
| # You should have received a copy of the GNU General Public License |
| # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| # |
| # tests of ksh93-like dup-and-close redirection operators |
| exec 9<$0 |
| |
| f() |
| { |
| exec 5<$0 |
| |
| exec 0<&5- |
| |
| while read line; do |
| echo "$line" |
| done |
| } |
| |
| f |
| |
| typeset -f f |
| |
| # make sure it was closed |
| read -u 5 foo 2>&1 | grep -q 'invalid file descriptor' |
| echo after read |
| |
| exec 5<&0 |
| |
| exec <&- |
| |
| read abcde 2>&1 | grep -q 'read error' |
| |
| exec 0<&9- |
| read line |
| echo $line |