Sponsored Content
Top Forums Shell Programming and Scripting Abbreviated aliasing would be a great feature to bring to shells Post 303038271 by apmcd47 on Thursday 29th of August 2019 09:59:07 AM
Old 08-29-2019
Quote:
Originally Posted by unscripted
Being able to mark in an alias definition a point of minimal abbreviation, an old feature of VAX/VMS shell (DCL) would be really nice in modern *nix shells.

In DCL you used to be able to define an alias (in its own weird syntax) which would be something like this:

$ alias fuz*zyanimals="cat dog"

The asterisk marks minimal unique abbreviation for the alias, such that all of the following invocations would work:
fuz
fuzz
fuzzy
fuzzya
fuzzyan
fuzzyanim
fuzzyanima
fuzzyanimal
fuzzyanimals
Short of forking bash and modifying alias, I don't think there is a way to do what you want. However, this bash function will pollute your environment with lots of aliases. To make things easier I make the assumption that all abbreviations will start at 3 letters and I make no tests for the length of the alias being shorter than 3 letters. Use at your own risk! Smilie

Code:
nalias() {
   local fulline="$*"
   local xalias=${fulline#*=}
   local name=${fulline%%=*}
   local i
   for i in $(seq 3 ${#name})
   do 
      alias ${name::$i}="$xalias"
   done
}

Example:
Code:
$ nalias fuzzyanimals='cat dog'
$ alias | grep fuz
alias fuz='cat dog'
alias fuzz='cat dog'
alias fuzzy='cat dog'
alias fuzzya='cat dog'
alias fuzzyan='cat dog'
alias fuzzyani='cat dog'
alias fuzzyanim='cat dog'
alias fuzzyanima='cat dog'
alias fuzzyanimal='cat dog'
alias fuzzyanimals='cat dog'
$ fuzzyanim
cat: dog: No such file or directory
$

It would probably be possible to add the asterisk marker into the code to split the alias into minimal abbreviation + rest of alias, then add the latter to the former one letter at a time in a similar manner to the above. But this works for the two aliases I tried it on!

Andrew

Last edited by apmcd47; 08-29-2019 at 11:00 AM.. Reason: Forgot to say this is using bash
 

8 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Basic regarding aliasing

Hi All, One small request. In UNIX/LINUX we can have our own aliases in .bashrc file. My doubt is when we add a new alias and if it is tried in already opened terminals it will not work, may be it is not going to recognise. Bit when we use the same alias in new terminal it will work. I... (1 Reply)
Discussion started by: chanakyahere
1 Replies

2. UNIX for Dummies Questions & Answers

What is IP aliasing ?

Hi, Can anyone tell me what is IP aliasing ? I do not know if this is the right place for this thread !!. Thanks in advance, Gideon. (2 Replies)
Discussion started by: preethgideon
2 Replies

3. UNIX for Dummies Questions & Answers

aliasing question in UNIX

Folks; I know this might sound stupid, but Can i alias a web link to another web link in a UNIX server? Let say i have a web link named http://test.new.com/wiki Can i alias that so when i click on it or i type it in the browser address it opens but the link in the browser say something like:... (1 Reply)
Discussion started by: Katkota
1 Replies

4. UNIX for Advanced & Expert Users

aliasing the TO name in Unix mails

HI All, I have a small question/clarification/doubt . Does anyone know how to provide alias in the mails that come from Unix servers. Like i have a Unix server that generates status mails every hour for a scheduled job , it sends me mails with status with the ID in from field as... (3 Replies)
Discussion started by: bsandeep_80
3 Replies

5. UNIX for Dummies Questions & Answers

How can I do aliasing in shellscript?

#Example.sh alias rmv 'sh Example2.sh' when i execute exapme.sh alias name not working. how i solve this problem?? (9 Replies)
Discussion started by: arun508.gatike
9 Replies

6. Homework & Coursework Questions

aliasing command

hi to all members in this forums .. Nice to meet you... i only have a questions about command utility of "dd": for example i will type: pico trial this is my file. and save it and type chmod a+x trial can there be a way that instead of typing: dd if=trial of=trial.copy conv=ucase... (3 Replies)
Discussion started by: marahtia
3 Replies

7. Solaris

Directory Aliasing

Hello, I need to rediret the directory location at run time as:- If I type cd /dir1/dir2 then it should take me to /dir1/dir3 at run time. Inside dir1, both dir2 and dir3 directories are present. Could anyone guild me over it? Thanks Shubham (5 Replies)
Discussion started by: shubh05
5 Replies

8. What is on Your Mind?

Pearls before swine could be abbreviated PBS

I have these mental shorthands, e.g., OPC for other people's code/children, so when a wise suggestion is ignored, I thought, pearls before swine, but the acronym PBS is already taken. Maybe it's an inside joke? (0 Replies)
Discussion started by: DGPickett
0 Replies
aliasadm(1M)						  System Administration Commands					      aliasadm(1M)

NAME
aliasadm - manipulate the NIS+ aliases map SYNOPSIS
aliasadm -a alias expansion [options comments] optional flags aliasadm -c alias expansion [ options comments] [ optional flags] aliasadm -d alias [ optional flags] aliasadm -e alias [ optional flags] aliasadm -l alias [ optional flags] aliasadm -m alias [ optional flags] aliasadm [-I] [-D domainname] [-f filename] [-M mapname] DESCRIPTION
aliasadm makes changes to the alias map. The alias map is an NIS+ table object with four columns: alias The name of the alias as a null terminated string. expansion The value of the alias as it would appear in a sendmail /etc/aliases file. options A list of options applicable to this alias. The only option currently supported is CANON. With this option, if the user has requested an inverse alias lookup, and there is more than one alias with this expansion, this alias is given prefer- ence. comments An arbitrary string containing comments about this alias. The sendmail(1M) command reads this map in addition to the NIS aliases map and the local /etc/aliases database. OPTIONS
-a Add an alias. -c Change an alias. -d Delete an alias. -e Edit the alias map. -I Initialize the NIS+ aliases database. -l List the alias map. -m Print or match an alias. -D domainname Edit the map in domain domainname instead of the current domain. -f filename When editing or listing the database, use filename instead of invoking the editor. -M mapname Edit mapname instead of mail_aliases. FILES
/etc/aliases mail aliases for the local host in ASCII format ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWnisu | +-----------------------------+-----------------------------+ SEE ALSO
sendmail(1M), attributes(5) NOTES
NIS+ might not be supported in future releases of the SolarisTM Operating Environment. Tools to aid the migration from NIS+ to LDAP are available in the Solaris 9 operating environment. For more information, visit http://www.sun.com/directory/nisplus/transition.html. SunOS 5.10 12 Dec 2001 aliasadm(1M)
All times are GMT -4. The time now is 11:27 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy