X-Spam-Check-By: sourceware.org Date: Tue, 20 Mar 2007 18:28:56 -0700 From: Gary Johnson To: cygwin AT cygwin DOT com Subject: Re: Tab Completion and Typical Behavior Message-ID: <20070321012856.GA21436@suncomp1.spk.agilent.com> Mail-Followup-To: cygwin AT cygwin DOT com References: <20070319222033 DOT GC12851 AT suncomp1 DOT spk DOT agilent DOT com> <22t0031r2jgupl1i8ugb2uqi6pc83i2mbv AT 4ax DOT com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <22t0031r2jgupl1i8ugb2uqi6pc83i2mbv@4ax.com> User-Agent: Mutt/1.5.12 (2006-07-14) X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On 2007-03-20, robert_neville310 AT yahoo DOT com wrote: > On Mon, 19 Mar 2007 15:20:33 -0700, Gary Johnson > wrote: ^^^^^^^^^^^^^^^^^^^^^^^^ Including someone's address in your reply is frowned upon in this list. http://cygwin.com/acronyms/#PCYMTNQREAIYR I personally don't care--it's too late for the address I use on lists and I have a very good spam filter--but other folks are very sensitive to the issue, and rightly so. I don't know what the list policy is for users who use only their address and don't include their name in their "From: " header, but I see that my mailer used your address because it couldn't find a name. Oops. > > >On 2007-03-19, robert_neville310 AT yahoo DOT com wrote: > >> I have a question about tab completion in the console window. The > >> .bash_profile exports the right paths and the console performs tab > >> completion. My scripts can be found in ~/bin. I can tab out > >> myscript.sh, but can not tab complete ./myscript.sh; or sh > >> myscript.sh. Is this behavior normal? Can I change the console > >> behavior to tab out ./myscript.sh? > > > >Larry didn't address the case of > > > > sh myscript.sh > > > >which doesn't seem to work by default. However, you can tell bash > >to expand the arguments to sh as commands by executing > > > > complete -c sh > > > Works great. Thanks Gary. You're welcome. > Eric Blake wrote: > > That is, if you don't use the bash-completion package. If you install > > that, and tweak your ~/.bashrc (/etc/defaults/etc/skel/.bashrc has some > > hints), then you get this, and many other, programmable completion tweaks > > by default. > > Not many hints in my .bashrc. It just has this code block. > > # If this shell is interactive, turn on programmable completion > enhancements. > # Any completions you add in ~/.bash_completion are sourced last. > # case $- in > # *i*) [[ -f /etc/bash_completion ]] && . /etc/bash_completion ;; > # esac > > I am not familar with interactive mode and do not have a > bash_completion file. Interactive mode is the mode the shell is in when you're controlling it from a command prompt. The shell is usually not in interactive mode when it's executing a script. You can get the bash-completion package from here: http://cygwin.com/packages/ but I don't know if it installs the .bash_completion file itself or whether you have to do that yourself. I didn't even know about it until reading Eric's reply. > > complete -c sh > > Do I need to place this statement in the .bashrc? What is the proper > syntax? Unless you are going to use the bash-completion package which will apparently get you this and much more, then yes, put that statement just as it is in your ~/.bashrc. That's one of the nice things about bash and other Unix shells: the syntax in a script file or initialization file is the same as the syntax from the keyboard. > > I am asking for confirmation to avoid breaking my console. By the way, > I do not have the bash_completion file or a template for it. I could > easily touch the file if necessary. > > What is $- ? $- is an environment variable that contains the current set of options. For example, from the bash I have running in an rxvt window, $ echo $- himBH You can then execute "man bash" and search for -h, for example, to discover that the shell will "[r]emember the location of commands as they are looked up for execution. This is enabled by default." Regards, Gary -- Gary Johnson | Agilent Technologies garyjohn AT spk DOT agilent DOT com | Mobile Broadband Division | Spokane, Washington, USA -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/