I have been trying for a couple days to figure this out to no avail. I am converting some csh code to bash. I have converted everything except the completion code.
Code:
#bashrc (I set this alias in my bashrc)
alias test='source ${PATH}/test.sh'
#${PATH}/test.sh (returns some aliases and env variables to the current shell)
ARGS="$@"
eval "`/usr/bin/python ${BPATH}/test $ARGS`"
#${PATH}/test.py (has options -h "help" -c "config" -p "packages")
#${PATH}/configurationsandpackages.py
# returns available configurations and packages
# so if I run /usr/bin/python ${PATH}/configurationsandpackages.py in a shell it returns a list of configurations and
# if I run /usr/bin/python ${PATH}/configurationsandpackages.py 1 it returns a list of packages
so my problem is that for -c and -p I want to set up completion to give me that list of configs or packages, ie:
Code:
localhost:~ medwards$ test -c<TAB>
default development etc
localhost:~ medwards$ test -c
localhost:~ medwards$ test -p<TAB>
environment defaults etc
localhost:~ medwards$ test -p
so in my bashrc after create the alias test='source ${PATH}/test.sh'
I want to create completion code to accomplish the above stated.
this works in csh.
Code:
complete test 'n@-c@`/usr/bin/python '${PATH}'/configurationsandpackages.py `@' 'n@-p@`/usr/bin/python '${PATH}'/configurationsandpackages.py 1`@'
I appreciate any insight, I have never programmed completion before and can find very little useful info from google.
regards, mark
Last edited by Scott; 05-08-2010 at 04:37 AM..
Reason: Please use code tags
I really like tcsh's:
set completion='enhanced'
because it treats underscores and dash signs the same. I don't have to reach for the shift key when trying to complete files that have underscores. As far as I know, there is nothing like this in bash.
Does such a thing exist in bash? If... (2 Replies)
completion-ignore-case option doesn't work in my version:
/home/user $ echo $BASH_VERSION
3.2.48(1)-release
/home/user $ ls -l *
-rw-r--r-- 1 user user 0 2009-10-18 00:09 somefile
-rw-r--r-- 1 user user 0 2009-10-18 00:09 Somefile
/home/user $ set completion-ignore-case on
But when I... (2 Replies)
Hello,
Bash completion is great, but there are some features I'd like to change. One thing is the behaviour when there are lots of very similar possibilities.
E.g., my directory contains 133 files, from pubmed_result1.txt to pubmed_result133.txt
$ ls Lyonprim/p
Display all 133... (2 Replies)
Hi there!
I have this script which handles bookmarks. Bookmarks are basically a string that point to a certain path, e.g., project -> ~/code/projects/project.
Currently I have working completion for the bookmarks:
~ $ m p<Tab>
~ $ m project
What I want to implement now is the cd... (0 Replies)
Hi,
I'm having a problem with tab completion at the bash command line. For some reason, whenever I type g<tab>, the terminal will freeze up for 5-10 seconds before asking me if I want to display all 325 possibilities. I thought that maybe it's because of the high number of commands, but I have... (4 Replies)
Hello
I want use bash_completion on a script but the information on the internet give me not a solution.
The scrip start with "cd" to a direction
Than the script do "ls"
Than I must give a name of a sub-direction and here I want to use <TAB>, so when I have a direction with the name
smith... (2 Replies)
Hello
I've followed several bash-completion threads, usualy none were answered, because of obvious reasons. (of which i'm just aware since a day or a few)
Non-the-less, because i was writing scripts, i never considered it to be possible to add this functionality.
Also, because i though that... (0 Replies)
Heyas
I'm trying to read out a file which contains a variable and use that list to complete a bash command.
Difficult part on this is, that 2 (actualy 3) different lists are to be used, but the 'dynamic' ones from the external file dont work properly.
It only seems to work with the list... (2 Replies)
Heyas
For my project TUI i had prepared bash completion.
Bash-completion works, at least if i source that file manualy.
However, when i'm installing it, it wont apply, not even for new opened terminals.
Allthough i had it working once, i dont get why it doesnt work now.
<...>
+ ''
+... (0 Replies)
Discussion started by: sea
0 Replies
LEARN ABOUT X11R4
perluts
PERLUTS(1) Perl Programmers Reference Guide PERLUTS(1)NAME
perluts - Perl under UTS
SYNOPSIS
This document can be read as is: as README.uts, or you can read it after you build your package using "man perluts".
The purpose is to help you build Perl for UTS, which, if you follow these instructions, should be easy, and result in a solidly working
installation.
DESCRIPTION
Perl 5.7.2 (Developmental) or Perl 5.8.x (forthcoming) for UTS
BUILDING PERL ON UTS
NOTE: Some sites have redefined the way uname works, and if yours does this, special steps must be taken so that Configure can recognize
your system as a UTS system. To see if you are in this category, issue the command "uname -a". It should look something like:
uts juno 4 4.4 9672 370
At any rate, the first field should be "uts". If this is not the case; supposing it is, say telcoUTS, create a script, uts/uname (i.e.
uname, in the subdirectory "uts" of the main Perl source dir):
# uname
/usr/bin/uname "$@" | sed -e 's/^telcoUTS/uts/'
and when you execute Configure, do it as below, except for adding PATH=uts:$PATH as a prefix. I.e. do:
PATH=uts:$PATH ./Configure ...
There is no need to do an interactive configure, just type
./Configure -de [-Dusedevel] [-Doptimize=-g ] 2>&1 | tee Conf.out
"-Dusedevel" may be required to configure Perl 5.7.2 non-interactively. Use -Doptimize=-g if you want to run Perl under sdb or gdb, OR if
you want to be able to use the -D command line flags to perl, which are occasionally useful in debugging perl scripts.
In this and the following steps, the "2>&1 | tee XXX.out" records all output from the process, which will be useful if anything unexpected
goes wrong.
Then do the compilation with
make 2>&1 | tee make.out
Finally, test using
make test 2>&1 | tee make-test.out
In the output, the only failures you should see should look like:
lib/Math/BigInt/t/bigfltpm.........Use of uninitialized value ...
FAILED at test 57
lib/Math/BigInt/t/bigintc..........ok
lib/Math/BigInt/t/bigintpm.........FAILED at test 204
lib/Math/BigInt/t/mbimbf...........Use of uninitialized value ...
Illegal division by zero at ../lib/Math/BigInt/Calc.pm line 314.
FAILED at test 71
lib/Math/Complex...................exp: OVERFLOW
FAILED at test 250
lib/Math/Trig......................exp: OVERFLOW
ok
lib/Memoize/t/array................ok
...
lib/Net/protoent...................ok
lib/Net/servent....................FAILED at test 0
This means that everything passes except for some problems in the packages "Math::BigInt", "Math::Complex", and "Math::Trig". The
lib/Net/servent failure seems to be a bug in the test program. To confirm this, from the main Perl source dir, do:
LD_LIBRARY_PATH=`pwd` ./perl -Ilib lib/Net/servent.t
and it should output
1..3
ok 1
ok 2
ok 3
Installing the built perl on UTS
Run the command "make install"
AUTHOR
Hal Morris
UTS Global LLC
email: hom00@utsglobal.com
perl v5.8.9 2007-11-17 PERLUTS(1)