I think rsync over ssh passes the command to be run through ssh directly, rather than feeding it to an interactive shell on the remote side.
If you run a shell script, bash doesn't even source your .bashrc, so no, programmable completion isn't even loaded when you run a non- interactive shell. Other than checking if it's running on a terminal (reading commands from a terminal), I don't think there's any way for bash to know that an rsync client is on the other end, rather than e.g. a gnome-terminal window passing keystrokes. If you're doing something that feeds input to bash through a terminal, it's going to have all its normal interactive stuff enabled. Please put date >> /tmp/home.bashrc.log in your ~/.bashrc or something, and give an example we can use as a test-case where .bashrc is loaded but shouldn't be. Or some other kind of testcase to demonstrate that bash-completion stuff is loading in a non-interactive shell. ** Changed in: bash-completion (Ubuntu) Status: New => Invalid -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1040358 Title: please make bash-completion do nothing in non-interactive shells To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/bash-completion/+bug/1040358/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs