1 is not safe, unusual PID value
In jobs.c we see: #if defined (RECYCLES_PIDS) if (last_asynchronous_pid == mypid) /* Avoid pid aliasing. 1 seems like a safe, unusual pid value. */ last_asynchronous_pid = 1; #endif 1 is not safe, unusual PID value, because: 1. Linux kernel sometimes start with option "init=/bin/bash" 2. Embeged systems offen have init, written in bash or /bin/sh, which is symlink to bash 3. Mostly all inits of initrd/initramfs written in shell, which may be symlink to bash Please, fix
Re: '>;' redirection operator
Feel free to write a patch. RR
how to understand echo ${PATH#*:}
Hi, how to understand echo ${PATH#*:} the #*: I don't get it. why the first path before : was gone. Thanks,
Re: how to understand echo ${PATH#*:}
lina wrote: > how to understand > echo ${PATH#*:} > > the #*: > I don't get it. why the first path before : was gone. This is really a help-bash question. Please send all follow-ups there. The documentation says: ${parameter#word} ${parameter##word} Remove matching prefix pattern. The word is expanded to produce a pattern just as in pathname expansion. If the pattern matches the beginning of the value of parameter, then the result of the expansion is the expanded value of parameter with the shortest matching pattern (the ``#'' case) or the longest matching pat- tern (the ``##'' case) deleted. If parameter is @ or *, the pattern removal operation is applied to each positional parame- ter in turn, and the expansion is the resultant list. If param- eter is an array variable subscripted with @ or *, the pattern removal operation is applied to each member of the array in turn, and the expansion is the resultant list. Since PATH is a series of directories separated by colons "#*:" will match and therefore remove the first element of the PATH. $ foo=one:two:three $ echo ${foo#*:} two:three And using two pound signs "##" would match the loggest pattern and remove all up through the last one. $ echo ${foo##*:} three Bob