Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-5648

Unexpected behaviour of default tab completion

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Minor Minor
    • None
    • rhel-8.4.0
    • bash-completion
    • None
    • Low
    • rhel-sst-cs-plumbers
    • ssg_core_services
    • None
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • If docs needed, set a value
    • None

      Sample reproducer environment:

      """

      1. cat > input.file<<EOF
        a
        b
        c
        d
        EOF
      1. for i in $(cat input.<TAB>
        """

      In rhel 7 it would correct complete 'input.file'.

      In rhel 8 it just bells and does not auto complete. It works if adding a backslash before the dollar sign, for example:

      1. for i in \$(cat input.<TAB>

      or if adding a newline:

      1. for f in
        $(cat input.<TAB>

      The easiest workaround is to not let it generate an autocompletion for 'for', and have in .bashrc or similar file the command:

      complete -o default for

      but this is just working around what appears to be a bug, as when spawning the subshell to generate the auto completion, it is actually attempting to autocomplete the string '$(cat input.' instead of 'input.'

      Another possible workaround, but really brute force would be to have:

      shopt -u progcomp

      in some initialization file, but that would not really bring compatibility with rhel7 behavior. Still, it would work usages of:

      $(cat input.

      other than just as a 'for' argument.

              rhn-support-svashish Siteshwar Vashisht
              rhn-support-pandrade Paulo Andrade
              Siteshwar Vashisht Siteshwar Vashisht
              RHEL CS Plumbers QE Bot RHEL CS Plumbers QE Bot
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

                Created:
                Updated:
                Resolved: