How to list all the shell keywords?

$ type if
if is a shell keyword

I don't know the other shell keywords.

Is there any command to list all the bash shell keywords.?

Note: help -m displays both shell builtins and shell keywords.


Solution 1:

For this exists that shell builtin command called compgen which most certainly you did not notice it when you run help -m.

$ compgen -k
if
then
else
elif
fi
case
esac
for
select
while
until
do
done
in
function
time
{
}
!
[[
]]
coproc

See help -m compgen for more info about compgen.

Solution 2:

Idea taken from here:

  • In bash, to list all keywords, first run the following command in terminal:

    complete -A keyword :
    
  • Then type at the prompter: :SpaceTabTab.

Works very well for me:

!         {         coproc    elif      fi        if        then      while     
[[        }         do        else      for       in        time      
]]        case      done      esac      function  select    until