An Introduction to Programmable Completion



An Introduction to Programmable Completion

The programmable completion feature in Bash permits typing a partial command, then pressing the [Tab] key to auto-complete the command sequence. [1] If multiple completions are possible, then [Tab] lists them all. Let's see how it works.

bash$ xtra[Tab]  xtraceroute       xtrapin           xtrapproto   xtraceroute.real  xtrapinfo         xtrapreset   xtrapchar         xtrapout          xtrapstats      bash$ xtrac[Tab]  xtraceroute       xtraceroute.real      bash$ xtraceroute.r[Tab]  xtraceroute.real        

Tab completion also works for variables and path names.

bash$ echo $BASH[Tab]  $BASH                 $BASH_COMPLETION      $BASH_SUBSHELL   $BASH_ARGC            $BASH_COMPLETION_DIR  $BASH_VERSINFO   $BASH_ARGV            $BASH_LINENO          $BASH_VERSION   $BASH_COMMAND         $BASH_SOURCE      bash$ echo /usr/local/[Tab]  bin/     etc/     include/ libexec/ sbin/    src/        doc/     games/   lib/     man/     share/        

The Bash complete and compgen builtins make it possible for tab completion to recognize partial parameters and options to commands. In a very simple case, we can use complete from the command-line to specify a short list of acceptable parameters.

bash$ touch sample_command  bash$ touch file1.txt file2.txt file2.doc file30.txt file4.zzz  bash$ chmod +x sample_command  bash$ complete -f -X '!*.txt' sample_command      bash$ ./sample[Tab][Tab]  sample_command  file1.txt   file2.txt   file30.txt    


Read full article from An Introduction to Programmable Completion


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts