[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Possible bug with BASH V4: The "$!"
From: |
Dan Douglas |
Subject: |
Re: Possible bug with BASH V4: The "$!" |
Date: |
Thu, 11 Apr 2013 12:17:30 -0500 |
User-agent: |
KMail/4.8.3 (Linux/3.4.6-pf+; KDE/4.8.3; x86_64; ; ) |
On Thursday, April 11, 2013 04:15:45 PM Lenga, Yair wrote:
> ( echo "$!") &
> ( echo "$!") &
>
> According to POSIX, both calls should print "" (nothing). As the background
> command does not come from the "current" shell.
>
> With BASH4, The first call will print "" (nothing), second call will print
> the PID of the first call.
>
> This is very confusing, and probably conflict with POSIX standard which
> indicate that "$!" apply to "CURRENT" shell.
The backgrounding of each list member is sequential. Presumably $! should be
set immediately after each fork and inherited by subshells like most other
variables. See "Command Execution Environment" in the manual or POSIX.
`x &', `{ x; } &' and, `(x) &' -- where `x' is a simple command are all
identical. The subshell group () is redundant in your example.
Note the wait doesn't impact these results. It just forces the output to be
ordered.
$!/usr/bin/env bash
for sh in {{b,d}a,z,{m,}k,po}sh bb sh; do
printf %-6s "${sh}:"
"$sh" /dev/fd/0
echo
done <<\EOF
${ZSH_VERSION+false} || emulate sh
n=5
while [ $((n -= 1)) -ge 0 ]; do
printf "%s " "${!:-empty}" & wait
done
EOF
bash: empty 2787 2788 2789 2790
dash: empty 2793 2794 2795 2796
zsh: 0 2800 2801 2802 2803
mksh: empty 2807 2809 2810 2811
ksh: empty 2814 2815 2816 2817
posh: empty 2820 2821 2822 2823
bb: empty 2826 2827 2828 2829 # busybox
sh: empty 2832 2833 2834 2835 # bash POSIX mode
--
Dan Douglas
- Possible bug with BASH V4: The "$!", Lenga, Yair , 2013/04/11
- Re: Possible bug with BASH V4: The "$!", Greg Wooledge, 2013/04/11
- Re: Possible bug with BASH V4: The "$!", Dan Douglas, 2013/04/11
- Re: Possible bug with BASH V4: The "$!", Chet Ramey, 2013/04/11
- RE: Possible bug with BASH V4: The "$!", Lenga, Yair , 2013/04/11
- Re: Possible bug with BASH V4: The "$!", Greg Wooledge, 2013/04/11
- Re: Possible bug with BASH V4: The "$!",
Dan Douglas <=
- Re: Possible bug with BASH V4: The "$!", Chet Ramey, 2013/04/11
- RE: Possible bug with BASH V4: The "$!", Lenga, Yair , 2013/04/12