Tuesday, June 15, 2021

Aliases and Variables Keep Things Short and Simple

Aliases are great for saving typing time, and you probably already have a handful set up. But you may not be aware that it’s possible to set up aliases that take command line variables as an argument. Read on for
an example.

Note: You can set
up the commands given below either directly from the command line or by
putting them into your shell config file (e.g., ~/.bashrc or
~/.tcshrc) and then sourcing that.

Occasionally, I want to check which desktop belongs to a particular
user. I have a local LDAP directory value set for this, so the command

ldapsearch "(localUser=username)"

does the trick.
I want to set up an alias for this, with the
command line argument taking the place of username.

In tcsh, this can be done straightforwardly using
!:1 for the first argument, !:2 for the second, and so on.
Remember, you’ll need to escape the ! in the alias definition.

So for my LDAP search:

alias finduser 'ldapsearch "(localUser=!:1)"'

Then the following:

$ finduser username

Unfortunately, in bash/sh/ksh this is no good,
as you can’t put arguments in aliases. What you can do to produce
the same effect is write a function.

function finduser() { ldapsearch "(localUser=$1)"; }

(Note the ; at the end of the command.)

To pass in further arguments to bash, you use $2, $3 and so on. Or, to pass in all the arguments on the command line, $*. This
gives much more scop for saving your typing fingers!

This article was first published on EnterpriseITPlanet.com.

Similar articles

Latest Articles

Top Data Visualization Tools...

The amount of data generated and consumed by organizations is growing at an astounding rate. The total volume of data and information worldwide has...

The Data Capture Market

Data capture is the process of collecting, ingesting, or otherwise acquiring structured and unstructured data and either converting it into a data format usable...

NVIDIA and the Move...

NVIDIA recently held a Q&A with its visionary CEO Jensen Huang.   While the Q&A this week focused on NVIDIA’s announcements at Computex, his opening and...

Acquia Updates Open Digital...

BOSTON – Acquia’s Drupal-based customer experience (CX) platform is looking different to enterprise users. Acquia made updates last quarter across its three-part Open Digital Experience...