Configuration Information [Automatically generated, do not change]:
Machine: x86_64
OS: linux-gnu
Compiler: gcc
Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='x86_64'
-DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='x86_64-pc-linux-gnu'
-DCONF_VENDOR='pc' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL
-DHAVE_CONFIG_H -I. -I../. -I.././include -I.././lib -Wdate-time
-D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat
-Werror=format-security -Wall
uname output: Linux shell 4.4.0-109-generic #132-Ubuntu SMP Tue Jan 9 19:52:39
UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Machine Type: x86_64-pc-linux-gnu
Bash Version: 4.3
Patch Level: 48
Release Status: release
Description:
This is actually a list of 3 issues that I've been saving up for some
time.
The first one (which is referenced in the Subject line above) is the
most
vexing, but all 3 are interesting.
1) In a script, when you kill a process, you get a terminal style message
about the process being killed. See below for further description.
2) "shopt -s nullglob" breaks filename tab completion. I found that tab
completion
no longer works after I do that "shopt" command.
3) Using Escape v to edit a command line in vi mode works, but leaves the
keyboard in a funny state. Specifically, it leaves you at the next bash
prompt, but
in "vi mode" - i.e, hitting k displays the previous line in the history rather
than
entering a 'k'. The user effect is that the keyboard appears to be "stuck"
until you
hit ^C to reset things.
Repeat-By:
(First, do: ln -sv /bin/sleep MySleep)
This is the script to demonstrate problem #1 in my list:
#!/bin/bash
{
./MySleep 32767
} &
echo "BASH_VERSION = $BASH_VERSION"
sleep 3
killall -v MySleep
sleep 1
Here is a run of this script:
$ ./testBashBug
BASH_VERSION = 4.3.48(1)-release
Killed MySleep(7000) with signal 15
./testBashBug: line 4: 7000 Terminated ./MySleep 32767
$
My point is that the "Terminated" message is pretty pointless when the
kill is from within a script. It may worry a user unnecessarily.
Note that the setup has to be as above - where you run a {} list in the
background,
then kill a process running within that {} group.