::  Posts  ::  RSS  ::  ◂◂RSS  ::  Contact

Bash quibbles

January 23rd, 2009
shell, programming

I like bash. It does a lot of things well and makes my life on the command line a lot more pleasant. It generally has nice tab completion, but there are some ways it would work better, though:

  1. Tab completion on paths containing environment variables should not expand them. Or if it is going to expand them, it should not follow with a space. If I'm doing everything relative to the directory $ON_B then I don't care that it expands to /nfs/man/this/path/is/freakin/long/on_b. With my shell PS1 hack (below) I don't have to see this depth all the time, but it could be even better.
  2. Tab completion should understand filename wildcards. If I have 'ls $ON_B/{a,b}*/repor and press tab then I want to have the command replaced by ls $ON_B/{a,b}*/report/. The logic is a little tricky. And there's even a bit of ambiguity: if the directory reporting appears in one (or more) of the possible expansions but not in all of them, while the directory report appears in all, do we ignore reporting? This affects whether we append the trailing slash in this case, and has widespread effects in other cases. I'm inclined to have it complete only with things that exist in all matches. Note that with this completion rule, to get something that exists in some of the matches, you need to edit the path being completed to rule out the things that don't have it. So while I wouldn't complete reporting from ls $ON_B/{a,b}*/repor if any of the dirs didn't have reporting, I would complete it from ls $ON_B/{a,b}*/reporti.

On a completely different subject, I've started using the InvertColors Firefox addon, and it makes pages look a lot nicer.

Comment via: facebook

More Posts:

Older Post:

Newer Post:


  ::  Posts  ::  RSS  ::  ◂◂RSS  ::  Contact