* quonting and globbing @ 2021-03-02 11:34 Pier Paolo Grassi 2021-03-02 11:58 ` Mikael Magnusson 2021-03-02 23:31 ` disown -a zzapper 0 siblings, 2 replies; 15+ messages in thread From: Pier Paolo Grassi @ 2021-03-02 11:34 UTC (permalink / raw) To: Zsh-Users List [-- Attachment #1: Type: text/plain, Size: 416 bytes --] Hello, given this test code: test(){ setopt -L extended_glob local glob=${(q)1}'.[0-9]##' touch $1.1 $1.2 echo -E - $~glob } > test tmp tmp.1 tmp.2 > test {tmp} test:4: no matches found: \{tmp\}.[0-9]## test '<tmp>' <tmp>.1 <tmp>.2 It seems the quoting of the {} makes the expansion fail (on zsh 5.1.1) is there any way I can quote the file name according to the glob expansion rules? thanks Pier Paolo Grassi [-- Attachment #2: Type: text/html, Size: 881 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: quonting and globbing 2021-03-02 11:34 quonting and globbing Pier Paolo Grassi @ 2021-03-02 11:58 ` Mikael Magnusson 2021-03-02 12:24 ` Pier Paolo Grassi 2021-03-02 23:31 ` disown -a zzapper 1 sibling, 1 reply; 15+ messages in thread From: Mikael Magnusson @ 2021-03-02 11:58 UTC (permalink / raw) To: Pier Paolo Grassi; +Cc: Zsh-Users List On 3/2/21, Pier Paolo Grassi <pierpaolog@gmail.com> wrote: > Hello, given this test code: > > test(){ > setopt -L extended_glob > local glob=${(q)1}'.[0-9]##' > touch $1.1 $1.2 > echo -E - $~glob > } > >> test tmp > tmp.1 tmp.2 > >> test {tmp} > test:4: no matches found: \{tmp\}.[0-9]## > > test '<tmp>' > <tmp>.1 <tmp>.2 > > It seems the quoting of the {} makes the expansion fail (on zsh 5.1.1) > is there any way I can quote the file name according to the glob expansion > rules? > thanks I think you want (b), not (q). -- Mikael Magnusson ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: quonting and globbing 2021-03-02 11:58 ` Mikael Magnusson @ 2021-03-02 12:24 ` Pier Paolo Grassi 0 siblings, 0 replies; 15+ messages in thread From: Pier Paolo Grassi @ 2021-03-02 12:24 UTC (permalink / raw) To: Mikael Magnusson; +Cc: Zsh-Users List [-- Attachment #1: Type: text/plain, Size: 751 bytes --] it seems I do, missed that. thanks! Pier Paolo Grassi Il giorno mar 2 mar 2021 alle ore 12:58 Mikael Magnusson <mikachu@gmail.com> ha scritto: > On 3/2/21, Pier Paolo Grassi <pierpaolog@gmail.com> wrote: > > Hello, given this test code: > > > > test(){ > > setopt -L extended_glob > > local glob=${(q)1}'.[0-9]##' > > touch $1.1 $1.2 > > echo -E - $~glob > > } > > > >> test tmp > > tmp.1 tmp.2 > > > >> test {tmp} > > test:4: no matches found: \{tmp\}.[0-9]## > > > > test '<tmp>' > > <tmp>.1 <tmp>.2 > > > > It seems the quoting of the {} makes the expansion fail (on zsh 5.1.1) > > is there any way I can quote the file name according to the glob > expansion > > rules? > > thanks > > I think you want (b), not (q). > > -- > Mikael Magnusson > [-- Attachment #2: Type: text/html, Size: 1486 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* disown -a 2021-03-02 11:34 quonting and globbing Pier Paolo Grassi 2021-03-02 11:58 ` Mikael Magnusson @ 2021-03-02 23:31 ` zzapper 2021-03-03 0:05 ` Daniel Shahaf 2021-03-03 0:12 ` Daniel Shahaf 1 sibling, 2 replies; 15+ messages in thread From: zzapper @ 2021-03-02 23:31 UTC (permalink / raw) To: zsh-users Hi Confused as to whether disown behaves differently between zsh & bash in zsh >disown -a disown: job not found: -a bash david@mint-HP-600B $ sleep 200 ^Z [1]+ Stopped sleep 200 david@mint-HP-600B $ disown -a bash: warning: deleting stopped job 1 with process group 47533 I desire to use disown -a in zsh but it's not working and not documented Best regards David Rayner ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: disown -a 2021-03-02 23:31 ` disown -a zzapper @ 2021-03-03 0:05 ` Daniel Shahaf 2021-03-03 7:15 ` Stephane Chazelas 2021-03-03 0:12 ` Daniel Shahaf 1 sibling, 1 reply; 15+ messages in thread From: Daniel Shahaf @ 2021-03-03 0:05 UTC (permalink / raw) To: zzapper, zsh-users zzapper wrote on Tue, 02 Mar 2021 23:31 +00:00: > Confused as to whether disown behaves differently between zsh & bash > Presumably you mean "why" rather than "whether". About that, see https://github.com/zsh-users/zsh/blob/5ede2c55f144593c16498c3131a76e188114a9c6/Etc/FAQ.yo#L2056-L2102, the first and penultimate paragraphs. More below. > in zsh > > >disown -a > disown: job not found: -a > > > bash > > david@mint-HP-600B $ sleep 200 > ^Z > [1]+ Stopped sleep 200 > david@mint-HP-600B $ disown -a > bash: warning: deleting stopped job 1 with process group 47533 > > > I desire to use disown -a in zsh but it's not working and not documented zsh is not a bug-for-bug reimplementation of bash. As to a workaround, you don't specify what -a should do, but perhaps this: disown %${(k)^jobstates[(R)suspended:*]} The references for that are spread across several parts of the manual (zshexpn(1) for ${^foo}, zshmodules(1) for $jobstates, etc), but in a nutshell, it disowns the jobs that are listed as "suspended" in $jobstates. You can even syntactic sugar that: function disown() { if [[ $# -eq 1 && #1 == -a ]] ; then set -- %${(k)^jobstates[(R)suspended:*]} ; fi builtin disown "$@" } ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: disown -a 2021-03-03 0:05 ` Daniel Shahaf @ 2021-03-03 7:15 ` Stephane Chazelas 2021-03-03 7:57 ` Pier Paolo Grassi 2021-03-03 9:36 ` disown -a zzapper 0 siblings, 2 replies; 15+ messages in thread From: Stephane Chazelas @ 2021-03-03 7:15 UTC (permalink / raw) To: Daniel Shahaf; +Cc: zzapper, zsh-users 2021-03-03 00:05:38 +0000, Daniel Shahaf: [...] > zsh is not a bug-for-bug reimplementation of bash. > > As to a workaround, you don't specify what -a should do, but perhaps this: > > disown %${(k)^jobstates[(R)suspended:*]} [...] For the record, AFAICT "disown" is a zsh invention. Already there in 1.0 in 1990. ksh added it in ksh93 (a rewrite) released in late 1993. bash in 2.0 released in late 1996 (so the path there is likely to be zsh -> ksh93 -> bash, as ksh93 is generally the shell bash took inspiration from). With also a -h option. yash in 2.0a2 in 2008. In fish, disown is a wrapper function around its disown builtin added in 2.6b1 in 2017. pdksh-based, ash-based, csh-based ones don't seem to have a disown builtin. Of the ones that have a disown builtin above, only bash and yash support -a (also --all in yash). bash added that option (as well as -r) in 2.02 (1998). To this day, it seems the -h and -r options are specific to bash. ksh93's disown supports the usual --help/--usage/--nroff/--man/--author... like all its builtins. See also the related hup and nohup builtins of tcsh (from 1993). -- Stephane ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: disown -a 2021-03-03 7:15 ` Stephane Chazelas @ 2021-03-03 7:57 ` Pier Paolo Grassi 2021-03-03 10:23 ` Finding out where features come from (Was: disown -a) Stephane Chazelas 2021-03-03 9:36 ` disown -a zzapper 1 sibling, 1 reply; 15+ messages in thread From: Pier Paolo Grassi @ 2021-03-03 7:57 UTC (permalink / raw) To: Daniel Shahaf, zsh-users, zzapper [-- Attachment #1: Type: text/plain, Size: 1427 bytes --] out of curiosity, how have you assembled this informations? from memory or digging in the source trees? Il giorno mer 3 mar 2021 alle 08:16 Stephane Chazelas <stephane@chazelas.org> ha scritto: > 2021-03-03 00:05:38 +0000, Daniel Shahaf: > [...] > > zsh is not a bug-for-bug reimplementation of bash. > > > > As to a workaround, you don't specify what -a should do, but perhaps > this: > > > > disown %${(k)^jobstates[(R)suspended:*]} > [...] > > For the record, AFAICT "disown" is a zsh invention. Already > there in 1.0 in 1990. > > ksh added it in ksh93 (a rewrite) released in late 1993. > > bash in 2.0 released in late 1996 (so the path there is likely > to be zsh -> ksh93 -> bash, as ksh93 is generally the shell bash > took inspiration from). With also a -h option. > > yash in 2.0a2 in 2008. > > In fish, disown is a wrapper function around its disown builtin > added in 2.6b1 in 2017. > > pdksh-based, ash-based, csh-based ones don't seem to have a > disown builtin. > > Of the ones that have a disown builtin above, only bash and yash > support -a (also --all in yash). > > bash added that option (as well as -r) in 2.02 (1998). > > To this day, it seems the -h and -r options are specific to > bash. ksh93's disown supports the usual > --help/--usage/--nroff/--man/--author... like all its builtins. > > See also the related hup and nohup builtins of tcsh (from 1993). > > -- > Stephane > > -- Pier Paolo Grassi [-- Attachment #2: Type: text/html, Size: 1956 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* Finding out where features come from (Was: disown -a) 2021-03-03 7:57 ` Pier Paolo Grassi @ 2021-03-03 10:23 ` Stephane Chazelas 2021-03-03 14:00 ` Pier Paolo Grassi 0 siblings, 1 reply; 15+ messages in thread From: Stephane Chazelas @ 2021-03-03 10:23 UTC (permalink / raw) To: Pier Paolo Grassi; +Cc: Daniel Shahaf, zsh-users, zzapper 2021-03-03 08:57:15 +0100, Pier Paolo Grassi: > out of curiosity, how have you assembled this informations? from memory or > digging in the source trees? [...] I do collect a number of old archives of various shell source codes downloaded from here and there and look in there for this kind of information. I enjoy this kind of archeological digging. For recent versions, you can generally look in cvs/svn/git logs, or use git blame/svn ann or git log --grep... For older versions, most shells keep changelogs. zsh has some Etc/ChangeLog*, bash has a NEWS and CWRU/changelog. zsh links its changelog to the mailing list. So not only you can find the change, but also the reasoning and discussions behind it. That's quite unique and invaluable. It's hard to obtain old ksh versions. All I have is ksh86 (from some bsd source tree), svr4.2 ksh88d from archive.org, the leaked solaris11's ksh88i, ksh93d from dtksh, ksh85's man page and some of ksh93's since it's been made opensource. There's a RELEASE file in there (and more for the libraries) but it's a bit patchy. BSD shells (based on ash originally published on usenet in 1989, so easy to find, except for OpenBSD which switched to pdksh) are easy as the sccs history is publicly available. For tcsh, someone compiled all versions back to 6.06.1 in the git repo. Some older versions can be found on usenet. I started using zsh around the time bash 2.0 came out. But that was 25 years ago. I can't say I remember much from then. Back then, bash was already quite limited compared to zsh. It didn't even have arrays. -- Stephane ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Finding out where features come from (Was: disown -a) 2021-03-03 10:23 ` Finding out where features come from (Was: disown -a) Stephane Chazelas @ 2021-03-03 14:00 ` Pier Paolo Grassi 2021-03-03 14:45 ` Pier Paolo Grassi 0 siblings, 1 reply; 15+ messages in thread From: Pier Paolo Grassi @ 2021-03-03 14:00 UTC (permalink / raw) To: Pier Paolo Grassi, Zsh-Users List [-- Attachment #1: Type: text/plain, Size: 2189 bytes --] that's quite interesting, for me at least. If you have any good link to articles or books about the history of shell programs and the motivations behind various choices and want to share I would really appreciate it idk if this is interesting to the list also or I should message privately about topics not directly related to zsh, or if I should start a new thread, I would appreciate some direction on this Pier Paolo Grassi Il giorno mer 3 mar 2021 alle ore 11:23 Stephane Chazelas < stephane@chazelas.org> ha scritto: > 2021-03-03 08:57:15 +0100, Pier Paolo Grassi: > > out of curiosity, how have you assembled this informations? from memory > or > > digging in the source trees? > [...] > > I do collect a number of old archives of various shell source > codes downloaded from here and there and look in there for this > kind of information. I enjoy this kind of archeological digging. > > For recent versions, you can generally look in cvs/svn/git logs, > or use git blame/svn ann or git log --grep... > > For older versions, most shells keep changelogs. zsh has some > Etc/ChangeLog*, bash has a NEWS and CWRU/changelog. zsh links > its changelog to the mailing list. So not only you can find the > change, but also the reasoning and discussions behind it. That's > quite unique and invaluable. > > It's hard to obtain old ksh versions. All I have is ksh86 (from > some bsd source tree), svr4.2 ksh88d from archive.org, the > leaked solaris11's ksh88i, ksh93d from dtksh, ksh85's man page > and some of ksh93's since it's been made opensource. There's a > RELEASE file in there (and more for the libraries) but it's a > bit patchy. > > BSD shells (based on ash originally published on usenet in 1989, > so easy to find, except for OpenBSD which switched to pdksh) are > easy as the sccs history is publicly available. > > For tcsh, someone compiled all versions back to 6.06.1 in the > git repo. Some older versions can be found on usenet. > > I started using zsh around the time bash 2.0 came out. But that > was 25 years ago. I can't say I remember much from then. Back > then, bash was already quite limited compared to zsh. It didn't > even have arrays. > > -- > Stephane > [-- Attachment #2: Type: text/html, Size: 2936 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Finding out where features come from (Was: disown -a) 2021-03-03 14:00 ` Pier Paolo Grassi @ 2021-03-03 14:45 ` Pier Paolo Grassi 0 siblings, 0 replies; 15+ messages in thread From: Pier Paolo Grassi @ 2021-03-03 14:45 UTC (permalink / raw) To: Pier Paolo Grassi, Zsh-Users List [-- Attachment #1: Type: text/plain, Size: 2418 bytes --] oh I see now that you already changed the topic Pier Paolo Grassi Il giorno mer 3 mar 2021 alle ore 15:00 Pier Paolo Grassi < pierpaolog@gmail.com> ha scritto: > that's quite interesting, for me at least. If you have any good link to > articles or books about the history of shell programs and the motivations > behind various choices and want to share I would really appreciate it > idk if this is interesting to the list also or I should message privately > about topics not directly related to zsh, or if I should start a new > thread, I would appreciate some direction on this > > Pier Paolo Grassi > > > Il giorno mer 3 mar 2021 alle ore 11:23 Stephane Chazelas < > stephane@chazelas.org> ha scritto: > >> 2021-03-03 08:57:15 +0100, Pier Paolo Grassi: >> > out of curiosity, how have you assembled this informations? from memory >> or >> > digging in the source trees? >> [...] >> >> I do collect a number of old archives of various shell source >> codes downloaded from here and there and look in there for this >> kind of information. I enjoy this kind of archeological digging. >> >> For recent versions, you can generally look in cvs/svn/git logs, >> or use git blame/svn ann or git log --grep... >> >> For older versions, most shells keep changelogs. zsh has some >> Etc/ChangeLog*, bash has a NEWS and CWRU/changelog. zsh links >> its changelog to the mailing list. So not only you can find the >> change, but also the reasoning and discussions behind it. That's >> quite unique and invaluable. >> >> It's hard to obtain old ksh versions. All I have is ksh86 (from >> some bsd source tree), svr4.2 ksh88d from archive.org, the >> leaked solaris11's ksh88i, ksh93d from dtksh, ksh85's man page >> and some of ksh93's since it's been made opensource. There's a >> RELEASE file in there (and more for the libraries) but it's a >> bit patchy. >> >> BSD shells (based on ash originally published on usenet in 1989, >> so easy to find, except for OpenBSD which switched to pdksh) are >> easy as the sccs history is publicly available. >> >> For tcsh, someone compiled all versions back to 6.06.1 in the >> git repo. Some older versions can be found on usenet. >> >> I started using zsh around the time bash 2.0 came out. But that >> was 25 years ago. I can't say I remember much from then. Back >> then, bash was already quite limited compared to zsh. It didn't >> even have arrays. >> >> -- >> Stephane >> > [-- Attachment #2: Type: text/html, Size: 3543 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: disown -a 2021-03-03 7:15 ` Stephane Chazelas 2021-03-03 7:57 ` Pier Paolo Grassi @ 2021-03-03 9:36 ` zzapper 2021-03-03 9:40 ` Peter Stephenson 2021-03-03 20:12 ` Daniel Shahaf 1 sibling, 2 replies; 15+ messages in thread From: zzapper @ 2021-03-03 9:36 UTC (permalink / raw) To: zsh-users On 03/03/2021 07:15, Stephane Chazelas wrote: > 2021-03-03 00:05:38 +0000, Daniel Shahaf: > [...] >> zsh is not a bug-for-bug reimplementation of bash. >> >> As to a workaround, you don't specify what -a should do, but perhaps this: >> >> >> pdksh-based, ash-based, csh-based ones don't seem to have a >> disown builtin. >> >> Of the ones that have a disown builtin above, only bash and yash >> support -a (also --all in yash). >> >> bash added that option (as well as -r) in 2.02 (1998). >> >> thanks for this interesting and comprehensive answer. Now something I've never quite got my head round is or isn't the underlying binary in bash & zsh for say disown or grep actually the same on any particular system? Best regards zzapper ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: disown -a 2021-03-03 9:36 ` disown -a zzapper @ 2021-03-03 9:40 ` Peter Stephenson 2021-03-03 20:12 ` Daniel Shahaf 1 sibling, 0 replies; 15+ messages in thread From: Peter Stephenson @ 2021-03-03 9:40 UTC (permalink / raw) To: zzapper, zsh-users > On 03 March 2021 at 09:36 zzapper <zsh@rayninfo.co.uk> wrote: > Now something I've never quite got my head round is or isn't the > underlying binary in bash & zsh for say disown or grep actually the > same on any particular system? This is one of the family of the commands that do job control, like fg, bg, jobs. Jobs are maintained by the shell itself. That's necessary so that, for example, if you run "fg" on the job the shell can tweak it to start running and then sit back and wait for it to exit. An external programme wouldn't be able to do all that. So, when you get to the point where you're not actually interested in the job any more, you need to tell the shell to forget it, and that's what disown is doing. pws ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: disown -a 2021-03-03 9:36 ` disown -a zzapper 2021-03-03 9:40 ` Peter Stephenson @ 2021-03-03 20:12 ` Daniel Shahaf 1 sibling, 0 replies; 15+ messages in thread From: Daniel Shahaf @ 2021-03-03 20:12 UTC (permalink / raw) To: zzapper; +Cc: zsh-users To add to pws's answer: zzapper wrote on Wed, Mar 03, 2021 at 09:36:13 +0000: > Now something I've never quite got my head round is or isn't the underlying > binary in bash & zsh for say disown or grep actually the same on any > particular system? For grep, yes. /bin/grep is the same thing regardless of what its parent process is. (That said, a process _could_ behave differently depending on what its parent is, if it wanted to.) disown, as mentioned by pws and elsethread, is a shell builtin. In zsh it's implemented as part of /bin/zsh; in bash it's presumably implemented as part of /bin/bash. Generally, bash and zsh's implementations of builtins are different. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: disown -a 2021-03-02 23:31 ` disown -a zzapper 2021-03-03 0:05 ` Daniel Shahaf @ 2021-03-03 0:12 ` Daniel Shahaf 2021-03-03 10:17 ` zsh 1 sibling, 1 reply; 15+ messages in thread From: Daniel Shahaf @ 2021-03-03 0:12 UTC (permalink / raw) To: zzapper; +Cc: zsh-users Also, don't start a new thread by replying to an existing one and changing the subject. Emails carry threading information and changing the subject doesn't reset it. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: disown -a 2021-03-03 0:12 ` Daniel Shahaf @ 2021-03-03 10:17 ` zsh 0 siblings, 0 replies; 15+ messages in thread From: zsh @ 2021-03-03 10:17 UTC (permalink / raw) To: Daniel Shahaf, zzapper; +Cc: zsh-users On 03/03/2021 00:12, Daniel Shahaf wrote: > Also, don't start a new thread by replying to an existing one and > changing the subject. Emails carry threading information and changing > the subject doesn't reset it. (sorry about that: when do you stop learning new things?) and to clear up my own query > which disown disown: shell built-in command ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2021-03-03 20:13 UTC | newest] Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-03-02 11:34 quonting and globbing Pier Paolo Grassi 2021-03-02 11:58 ` Mikael Magnusson 2021-03-02 12:24 ` Pier Paolo Grassi 2021-03-02 23:31 ` disown -a zzapper 2021-03-03 0:05 ` Daniel Shahaf 2021-03-03 7:15 ` Stephane Chazelas 2021-03-03 7:57 ` Pier Paolo Grassi 2021-03-03 10:23 ` Finding out where features come from (Was: disown -a) Stephane Chazelas 2021-03-03 14:00 ` Pier Paolo Grassi 2021-03-03 14:45 ` Pier Paolo Grassi 2021-03-03 9:36 ` disown -a zzapper 2021-03-03 9:40 ` Peter Stephenson 2021-03-03 20:12 ` Daniel Shahaf 2021-03-03 0:12 ` Daniel Shahaf 2021-03-03 10:17 ` zsh
Code repositories for project(s) associated with this public inbox https://git.vuxu.org/mirror/zsh/ This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).