<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom">
<title>Tyler Cipriani: pages tagged bash</title>
<link href="https://tylercipriani.com/tags/bash/"/>
<link href="https://tylercipriani.com/tags/bash/index.atom" rel="self" type="application/atom+xml"/>
<author>

<name>Tyler Cipriani</name>

</author>




<id>https://tylercipriani.com/tags/bash/</id>

<subtitle type="html">Tyler Cipriani</subtitle>
<generator uri="http://ikiwiki.info/">ikiwiki</generator>
<updated>2017-07-01T00:49:09Z</updated>
<entry>
	<title>Bash Completion</title>

	<id>https://tylercipriani.com/blog/2016/08/30/bash-completion/</id>

	<link href="https://tylercipriani.com/blog/2016/08/30/bash-completion/"/>

	<author><name>Tyler Cipriani</name></author>


	<rights type="html" xml:lang="en">

		&lt;a href=&quot;https://creativecommons.org/licenses/by-sa/4.0/&quot;&gt;Creative Commons Attribution-ShareAlike License&lt;/a&gt;
		Copyright © 2017 Tyler Cipriani

	</rights>



	<category term="bash" />

	<category term="computing" />

	<category term="notes" />

	<category term="shell" />


	<updated>2017-07-01T00:49:09Z</updated>
	<published>2016-08-30T05:01:47Z</published>


	<content type="html" xml:lang="en">
	&lt;section id=&quot;links&quot; class=&quot;level2&quot;&gt;
&lt;h2&gt;Links &lt;a href=&quot;https://tylercipriani.com/tags/bash/#links&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://debian-administration.org/article/316/An_introduction_to_bash_completion_part_1&quot;&gt;Intro to bash completion&lt;/a&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id=&quot;basics&quot; class=&quot;level2&quot;&gt;
&lt;h2&gt;Basics &lt;a href=&quot;https://tylercipriani.com/tags/bash/#basics&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Most Debian installed bash completions live under &lt;code&gt;/usr/share/bash_completion/completions&lt;/code&gt;&lt;/p&gt;
&lt;div class=&quot;sourceCode&quot; id=&quot;cb1&quot;&gt;&lt;pre class=&quot;sourceCode numberSource bash numberLines&quot;&gt;&lt;code class=&quot;sourceCode bash&quot;&gt;&lt;a class=&quot;sourceLine&quot; id=&quot;cb1-1&quot; title=&quot;1&quot;&gt;&lt;span class=&quot;co&quot;&gt;# the first argument ($1) is the name of the command whose  arguments are being completed&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb1-2&quot; title=&quot;2&quot;&gt;&lt;span class=&quot;co&quot;&gt;# the second argument ($2) is the word being completed,&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb1-3&quot; title=&quot;3&quot;&gt;&lt;span class=&quot;co&quot;&gt;# and the third argument ($3) is the word preceding the word  being  completed  on the current command line&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb1-4&quot; title=&quot;4&quot;&gt;&lt;span class=&quot;co&quot;&gt;# In the context of this function the following variables are defined:&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb1-5&quot; title=&quot;5&quot;&gt;&lt;span class=&quot;co&quot;&gt;# COMP_LINE, COMP_POINT, COMP_KEY, and COMP_TYPE&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb1-6&quot; title=&quot;6&quot;&gt;&lt;span class=&quot;co&quot;&gt;# as well as COMP_WORDS and COMP_CWORD&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb1-7&quot; title=&quot;7&quot;&gt;&lt;span class=&quot;co&quot;&gt;#  It must put the possible completions in the COMPREPLY array&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb1-8&quot; title=&quot;8&quot;&gt;&lt;span class=&quot;co&quot;&gt;# See bash(1) &amp;#39;^  Programmable Completion&amp;#39; for more information&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb1-9&quot; title=&quot;9&quot;&gt;&lt;span class=&quot;fu&quot;&gt;_some_function()&lt;/span&gt; &lt;span class=&quot;kw&quot;&gt;{&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb1-10&quot; title=&quot;10&quot;&gt;  &lt;span class=&quot;bu&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;va&quot;&gt;cur&lt;/span&gt; &lt;span class=&quot;va&quot;&gt;cmd&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb1-11&quot; title=&quot;11&quot;&gt;  &lt;span class=&quot;va&quot;&gt;cur=${COMP_WORDS[$COMP_CWORD]}&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb1-12&quot; title=&quot;12&quot;&gt;  &lt;span class=&quot;va&quot;&gt;cmd=(&lt;/span&gt; &lt;span class=&quot;st&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;va&quot;&gt;${COMP_WORDS[@]}&lt;/span&gt;&lt;span class=&quot;st&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;va&quot;&gt;)&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb1-13&quot; title=&quot;13&quot;&gt;&lt;span class=&quot;kw&quot;&gt;}&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb1-14&quot; title=&quot;14&quot;&gt;&lt;span class=&quot;bu&quot;&gt;complete&lt;/span&gt; -F _some_function command&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id=&quot;complete-options&quot; class=&quot;level2&quot;&gt;
&lt;h2&gt;&lt;code&gt;complete&lt;/code&gt; options &lt;a href=&quot;https://tylercipriani.com/tags/bash/#complete-options&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Some complete options you want:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-o bashdefault&lt;/code&gt; - if no completions are found do the bash default thing&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-o default&lt;/code&gt; - readline completions if both the complete function and bash expansions fail&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-o nospace&lt;/code&gt; - don’t append a space at the end of matches (useful if you’re doing directory stuffs)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-S or -P&lt;/code&gt; - a prefix or suffix that is added at the end of a completion generated by the function passed to &lt;code&gt;complete -F&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id=&quot;example&quot; class=&quot;level2&quot;&gt;
&lt;h2&gt;Example &lt;a href=&quot;https://tylercipriani.com/tags/bash/#example&quot;&gt;¶&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;sourceCode&quot; id=&quot;cb2&quot;&gt;&lt;pre class=&quot;sourceCode numberSource bash numberLines&quot;&gt;&lt;code class=&quot;sourceCode bash&quot;&gt;&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-1&quot; title=&quot;1&quot;&gt;&lt;span class=&quot;co&quot;&gt;# Many of the ideas presented in this script were stolen&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-2&quot; title=&quot;2&quot;&gt;&lt;span class=&quot;co&quot;&gt;# in-part or wholesale from&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-3&quot; title=&quot;3&quot;&gt;&lt;span class=&quot;co&quot;&gt;# &amp;lt;https://github.com/git/git/blob/master/contrib/completion/git-completion.bash&amp;gt;&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-4&quot; title=&quot;4&quot;&gt;&lt;span class=&quot;va&quot;&gt;__scap_subcommands=&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-5&quot; title=&quot;5&quot;&gt;&lt;span class=&quot;fu&quot;&gt;__scap_get_subcommands()&lt;/span&gt; &lt;span class=&quot;kw&quot;&gt;{&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-6&quot; title=&quot;6&quot;&gt;    &lt;span class=&quot;kw&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;bu&quot;&gt; [&lt;/span&gt; &lt;span class=&quot;ot&quot;&gt;-n&lt;/span&gt; &lt;span class=&quot;st&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;va&quot;&gt;$__scap_subcommands&lt;/span&gt;&lt;span class=&quot;st&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;bu&quot;&gt; ]&lt;/span&gt;; &lt;span class=&quot;kw&quot;&gt;then&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-7&quot; title=&quot;7&quot;&gt;        &lt;span class=&quot;bu&quot;&gt;return&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-8&quot; title=&quot;8&quot;&gt;    &lt;span class=&quot;kw&quot;&gt;fi&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-9&quot; title=&quot;9&quot;&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-10&quot; title=&quot;10&quot;&gt;    &lt;span class=&quot;va&quot;&gt;__scap_subcommands=$(&lt;/span&gt;&lt;span class=&quot;ex&quot;&gt;scap&lt;/span&gt; --_autocomplete&lt;span class=&quot;va&quot;&gt;)&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-11&quot; title=&quot;11&quot;&gt;&lt;span class=&quot;kw&quot;&gt;}&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-12&quot; title=&quot;12&quot;&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-13&quot; title=&quot;13&quot;&gt;&lt;span class=&quot;fu&quot;&gt;_scap()&lt;/span&gt; &lt;span class=&quot;kw&quot;&gt;{&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-14&quot; title=&quot;14&quot;&gt;    &lt;span class=&quot;bu&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;va&quot;&gt;cur&lt;/span&gt; &lt;span class=&quot;va&quot;&gt;cmd=()&lt;/span&gt; &lt;span class=&quot;va&quot;&gt;sub&lt;/span&gt; &lt;span class=&quot;va&quot;&gt;rep&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-15&quot; title=&quot;15&quot;&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-16&quot; title=&quot;16&quot;&gt;    &lt;span class=&quot;va&quot;&gt;cur=${COMP_WORDS[$COMP_CWORD]}&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-17&quot; title=&quot;17&quot;&gt;    &lt;span class=&quot;va&quot;&gt;cmd=(&lt;/span&gt; &lt;span class=&quot;st&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;va&quot;&gt;${COMP_WORDS[@]}&lt;/span&gt;&lt;span class=&quot;st&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;va&quot;&gt;)&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-18&quot; title=&quot;18&quot;&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-19&quot; title=&quot;19&quot;&gt;    &lt;span class=&quot;kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw&quot;&gt;((&lt;/span&gt; COMP_CWORD == 1 &lt;span class=&quot;kw&quot;&gt;))&lt;/span&gt;; &lt;span class=&quot;kw&quot;&gt;then&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-20&quot; title=&quot;20&quot;&gt;        &lt;span class=&quot;ex&quot;&gt;__scap_get_subcommands&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-21&quot; title=&quot;21&quot;&gt;        &lt;span class=&quot;va&quot;&gt;rep=$(&lt;/span&gt; &lt;span class=&quot;bu&quot;&gt;compgen&lt;/span&gt; -W &lt;span class=&quot;st&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;va&quot;&gt;$__scap_subcommands&lt;/span&gt;&lt;span class=&quot;st&quot;&gt;&amp;quot;&lt;/span&gt; -- &lt;span class=&quot;st&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;va&quot;&gt;$cur&lt;/span&gt;&lt;span class=&quot;st&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;va&quot;&gt;)&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-22&quot; title=&quot;22&quot;&gt;        &lt;span class=&quot;va&quot;&gt;COMPREPLY=(&lt;/span&gt; &lt;span class=&quot;va&quot;&gt;$rep&lt;/span&gt; &lt;span class=&quot;va&quot;&gt;)&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-23&quot; title=&quot;23&quot;&gt;        &lt;span class=&quot;bu&quot;&gt;return&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-24&quot; title=&quot;24&quot;&gt;    &lt;span class=&quot;kw&quot;&gt;fi&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-25&quot; title=&quot;25&quot;&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-26&quot; title=&quot;26&quot;&gt;    &lt;span class=&quot;co&quot;&gt;# limit the command to autocomplete to the first 3 words&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-27&quot; title=&quot;27&quot;&gt;    &lt;span class=&quot;kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw&quot;&gt;((&lt;/span&gt; COMP_CWORD &amp;gt;= 2 &lt;span class=&quot;kw&quot;&gt;))&lt;/span&gt;; &lt;span class=&quot;kw&quot;&gt;then&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-28&quot; title=&quot;28&quot;&gt;        &lt;span class=&quot;co&quot;&gt;# don&amp;#39;t complete any sub-subcommands, only options&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-29&quot; title=&quot;29&quot;&gt;        &lt;span class=&quot;kw&quot;&gt;if [[&lt;/span&gt; &lt;span class=&quot;ot&quot;&gt;-n&lt;/span&gt; &lt;span class=&quot;st&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;va&quot;&gt;$cur&lt;/span&gt;&lt;span class=&quot;st&quot;&gt;&amp;quot;&lt;/span&gt; &amp;amp;&amp;amp; &lt;span class=&quot;st&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;va&quot;&gt;${cur:0:1}&lt;/span&gt;&lt;span class=&quot;st&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;ot&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;st&quot;&gt;&amp;#39;-&amp;#39;&lt;/span&gt;&lt;span class=&quot;kw&quot;&gt; ]]&lt;/span&gt;; &lt;span class=&quot;kw&quot;&gt;then&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-30&quot; title=&quot;30&quot;&gt;            &lt;span class=&quot;va&quot;&gt;COMPREPLY=()&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-31&quot; title=&quot;31&quot;&gt;            &lt;span class=&quot;bu&quot;&gt;return&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-32&quot; title=&quot;32&quot;&gt;        &lt;span class=&quot;kw&quot;&gt;fi&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-33&quot; title=&quot;33&quot;&gt;        &lt;span class=&quot;va&quot;&gt;cmd=(&lt;/span&gt; &lt;span class=&quot;st&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;va&quot;&gt;${COMP_WORDS[@]:0:3}&lt;/span&gt;&lt;span class=&quot;st&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;va&quot;&gt;)&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-34&quot; title=&quot;34&quot;&gt;    &lt;span class=&quot;kw&quot;&gt;fi&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-35&quot; title=&quot;35&quot;&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-36&quot; title=&quot;36&quot;&gt;    &lt;span class=&quot;co&quot;&gt;# replace the last word in the command with &amp;#39;--_autocomplete&amp;#39;&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-37&quot; title=&quot;37&quot;&gt;    &lt;span class=&quot;va&quot;&gt;cmd[ $((&lt;/span&gt; &lt;span class=&quot;va&quot;&gt;${#cmd[@]}&lt;/span&gt; - 1 &lt;span class=&quot;va&quot;&gt;)) ]=&lt;/span&gt;&lt;span class=&quot;st&quot;&gt;&amp;#39;--_autocomplete&amp;#39;&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-38&quot; title=&quot;38&quot;&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-39&quot; title=&quot;39&quot;&gt;    &lt;span class=&quot;va&quot;&gt;rep=$(&lt;/span&gt; &lt;span class=&quot;bu&quot;&gt;compgen&lt;/span&gt; -W &lt;span class=&quot;st&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;va&quot;&gt;$(&lt;/span&gt; &lt;span class=&quot;va&quot;&gt;${cmd[@]}&lt;/span&gt; &lt;span class=&quot;va&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;st&quot;&gt;&amp;quot;&lt;/span&gt; -- &lt;span class=&quot;st&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;va&quot;&gt;$cur&lt;/span&gt;&lt;span class=&quot;st&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;va&quot;&gt;)&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-40&quot; title=&quot;40&quot;&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-41&quot; title=&quot;41&quot;&gt;    &lt;span class=&quot;va&quot;&gt;COMPREPLY=(&lt;/span&gt; &lt;span class=&quot;va&quot;&gt;$rep&lt;/span&gt; &lt;span class=&quot;va&quot;&gt;)&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-42&quot; title=&quot;42&quot;&gt;&lt;span class=&quot;kw&quot;&gt;}&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-43&quot; title=&quot;43&quot;&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-44&quot; title=&quot;44&quot;&gt;&lt;span class=&quot;co&quot;&gt;# By default append nospace except when completion comes from _scap&lt;/span&gt;&lt;/a&gt;
&lt;a class=&quot;sourceLine&quot; id=&quot;cb2-45&quot; title=&quot;45&quot;&gt;&lt;span class=&quot;bu&quot;&gt;complete&lt;/span&gt; -S&lt;span class=&quot;st&quot;&gt;&amp;#39; &amp;#39;&lt;/span&gt; -o bashdefault -o default -o nospace -F _scap scap&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;

	</content>


	<link rel="comments" href="//tylercipriani.com/blog/2016/08/30/bash-completion/#comments" type="text/html" />


	<link rel="comments" href="//tylercipriani.com/blog/2016/08/30/bash-completion/comments.atom" type="application/atom+xml" />

</entry>

</feed>
