24 мая 2023 г. 18:05:29 Todd C. Miller <todd.mil...@sudo.ws>:
> On Tue, 23 May 2023 22:22:04 -0000, Klemens Nanni wrote: > >> I'm pointing this out because the error message we'd get provides less >> information with your diff: >> >> $ echo $(cat /nope) 2>/dev/null >> cat: /nope: No such file or directory >> vs. >> echo $(< /nope) 2>/dev/null >> ksh: /nope: cannot open $(<) input >> >> But given the constraint environment, I'm fine with turning those four >> $(cat ...) instances into $(< ...) like the exising seven onces with >> the intial example being the only outlier. > > Here's the error output from bash, zsh and ksh93: > > $bash echo $(< /nope) > bash: /nope: No such file or directory > > $zsh echo $(< /nope) > zsh: no such file or directory: /nope > > $ksh93 echo $(< /nope) > ksh93: /nope: cannot open [No such file or directory] > > Maybe we should just adjust ksh to display the more useful message? > With diff: > > $ echo $(< /nope) > ksh: /nope: No such file or directory > > - todd > > diff -u -p -u -r1.66 eval.c > --- bin/ksh/eval.c 13 Sep 2020 15:39:09 -0000 1.66 > +++ bin/ksh/eval.c 24 May 2023 14:03:41 -0000 > @@ -8,6 +8,7 @@ > > #include <ctype.h> > #include <dirent.h> > +#include <errno.h> > #include <fcntl.h> > #include <pwd.h> > #include <stdio.h> > @@ -909,7 +910,7 @@ comsub(Expand *xp, char *cp) > SHF_MAPHI|SHF_CLEXEC); > if (shf == NULL) > warningf(!Flag(FTALKING), > - "%s: cannot open $(<) input", name); > + "%s: %s", name, strerror(errno)); > xp->split = 0; /* no waitlast() */ > } else { > int ofd1, pv[2]; OK kn