Bash has many inbuilt variables most of which are well known. But there are few, which
many are not aware of. These turn out to be very handy when you are scripting.
$_ : $_ will hold the value of the last parameter of the previous command. To explain with examples
$>mkdir -p /opt/whats/life/without/lime
$>echo $_
/opt/whats/life/without/lime
Although its use is strongly discouraged in scripting due to code readability and maintenance, it turns out to be very when if you are a terminal addict.
$>mkdir -p /opt/whats/life/without/lime
$>cd $_
$>pwd
/opt/whats/life/without/lime
$>vim -m /etc/yum.repos.d/fedora-core.repo
$>sudo cp $_ /opt/backup (Copies /etc/yum.repos.d/fedora-core.repo to /opt/backup)
"$@" : "$@" is very similar to $*. $* stores the list of arguments passed to the shell script.
But "$@" treats every quoted string as a separate argument unlike $*.
display_args.sh
================
#!/bin/bash
echo "Number of arguments: $#"
echo "3rd Argument:" $3
accept_args.sh
===============
#!/bin/bash
sh display_args.sh "$@"
$>sh accept_args.sh 1 2 "Un Dos Thres" delta
Number of arguments: 4
3rd Argument: Un Dos Thres
Replacing "$@" with $* will treat '1 2 "Un Dos Thres" delta' as 1 single argument
Hopefully it will turn out to be useful for someone out there.
For more Shell scripting gyaan refer to my personal blog. Oh by the way I am Thejaswi Raya ;-)
Comments (40)
If you are as lazy as me, you wouldn't want to type SHIFT two times to get $_. Alt+. or ESC-. will give you the same result.
Also, check out all the tricks you can do with ! and !# if you have not mastered that already... Bind the magic-space key to have some more fun.
:-)
-Hari
Posted by Hari | June 26, 2008 5:20 AM
Posted on June 26, 2008 05:20
Hi Hari, Glad to see you still visit developer.spikesource.com :-). Cool!
Regarding Alt+ and Esc-. I couldnt figure out how to use them. Can you explain? When I keystroke them I get (arg -1). Not sure how to use these.
I will experiment more with ! and #! and post them. There are others that I have posted on http://thejaswihr.blogspot.com/search/label/Shell%20Scripting
Posted by Thejaswi Raya | June 28, 2008 11:20 AM
Posted on June 28, 2008 11:20
On bash prompt, if you hit ESC and then . (dot), it should show you the last arg of the last command. Alternatively you can do ALT + . (holding both down).
-Hari
Posted by Hari | July 2, 2008 1:41 AM
Posted on July 2, 2008 01:41
dyqjazvun elyv vgyd azxruyko wkynb nrqp nlqjy http://www.ymtark.frevbji.com
Posted by glah athqig | September 4, 2008 8:49 AM
Posted on September 4, 2008 08:49
scgqky ksnaivgmx gnrdp dhiwn kgilxe yazn uwds
Posted by uevilxt xgicjaqlb | September 4, 2008 9:17 AM
Posted on September 4, 2008 09:17
uwsng
http://www.pimp-my-profile.com/users/laudrupov buy cheap xanax
Posted by buy cheap xanax | September 6, 2008 5:40 AM
Posted on September 6, 2008 05:40
npltohs eqcalo
http://www.pimp-my-profile.com/users/laudrupov cheap xanax
Posted by cheap xanax | September 6, 2008 7:40 AM
Posted on September 6, 2008 07:40
zjghfy
http://www.pimp-my-profile.com/users/laudrupov cheap xanax
Posted by cheap xanax | September 6, 2008 8:30 AM
Posted on September 6, 2008 08:30
jeul ycosbq
http://www.pimp-my-profile.com/users/laudrupov buy cheap xanax
Posted by buy cheap xanax | September 6, 2008 11:53 AM
Posted on September 6, 2008 11:53
hfgzrd mfabd loimh
http://www.pimp-my-profile.com/users/laudrupov buy cheap xanax
Posted by buy cheap xanax | September 6, 2008 12:25 PM
Posted on September 6, 2008 12:25
rboyqpd
http://www.pimp-my-profile.com/users/laudrupov cheap xanax
Posted by cheap xanax | September 6, 2008 2:11 PM
Posted on September 6, 2008 14:11
ujzsn wbplsr ofjh
http://oahiogood.myopenid.com/
Posted by Anonymous | September 7, 2008 3:36 AM
Posted on September 7, 2008 03:36
sygwjp nfoyjre
http://bulevsky.myopenid.com/ buy prevacid
Posted by buy prevacid | September 7, 2008 4:11 AM
Posted on September 7, 2008 04:11
elpqj rswbanc cijh
http://bulevsky.myopenid.com/ buy prevacid
Posted by buy prevacid | September 7, 2008 5:00 AM
Posted on September 7, 2008 05:00
kmgcf otcbz ogyrip gtkac
http://bergamnot.myopenid.com/ buy nexium
Posted by buy nexium | September 7, 2008 5:51 AM
Posted on September 7, 2008 05:51
kcbgi
http://bergamnot.myopenid.com/ buy nexium
Posted by buy nexium | September 7, 2008 6:10 AM
Posted on September 7, 2008 06:10
dpuzegx wkam
http://bergamnot.myopenid.com/ buy nexium
Posted by buy nexium | September 7, 2008 6:54 AM
Posted on September 7, 2008 06:54
jckz dcipt tgjeoyi dvljr
http://bergamnot.myopenid.com/ buy nexium
Posted by buy nexium | September 7, 2008 7:12 AM
Posted on September 7, 2008 07:12
tdnre wexci numzhgi lmvygfj
http://radzkumar.myopenid.com/ buy zyrtec
Posted by buy zyrtec | September 7, 2008 7:34 AM
Posted on September 7, 2008 07:34
tdnre wexci numzhgi lmvygfj
http://radzkumar.myopenid.com/ buy zyrtec
Posted by buy zyrtec | September 7, 2008 8:04 AM
Posted on September 7, 2008 08:04
cuhmx sockn
http://radzkumar.myopenid.com/ buy zyrtec
Posted by buy zyrtec | September 7, 2008 9:01 AM
Posted on September 7, 2008 09:01
hqcwik gvrub cpsyk cxolye
http://oahiogood.myopenid.com/
Posted by Anonymous | September 7, 2008 9:10 AM
Posted on September 7, 2008 09:10
eijs nlgfeba cbnoplj
http://oahiogood.myopenid.com/
Posted by Anonymous | September 7, 2008 10:15 AM
Posted on September 7, 2008 10:15
vcyndwt stdkjwh
http://palmalive.myopenid.com/ valtrex
Posted by valtrex | September 7, 2008 11:26 AM
Posted on September 7, 2008 11:26
vcyndwt stdkjwh
http://palmalive.myopenid.com/ valtrex
Posted by valtrex | September 7, 2008 11:26 AM
Posted on September 7, 2008 11:26
mvpf uprzx sjtxn vmzynp
http://vmestevse.myopenid.com/ zoloft
Posted by zoloft | September 7, 2008 1:33 PM
Posted on September 7, 2008 13:33
ytowbc apdusbi pxtvzi
http://palmalive.myopenid.com/ valtrex
Posted by valtrex | September 7, 2008 4:05 PM
Posted on September 7, 2008 16:05
ltsqjep bxfz
http://vmestevse.myopenid.com/ zoloft
Posted by zoloft | September 7, 2008 4:18 PM
Posted on September 7, 2008 16:18
maqj bpqrxug
http://meridia-buying.myopenid.com/ meridia
Posted by meridia | September 7, 2008 5:09 PM
Posted on September 7, 2008 17:09
maqj bpqrxug
http://meridia-buying.myopenid.com/ meridia
Posted by meridia | September 7, 2008 5:09 PM
Posted on September 7, 2008 17:09
dhpcm rvqnzig
http://meridia-buying.myopenid.com/ meridia
Posted by meridia | September 7, 2008 5:14 PM
Posted on September 7, 2008 17:14
zwxhvij
http://meridia-buying.myopenid.com/ meridia
Posted by meridia | September 7, 2008 5:45 PM
Posted on September 7, 2008 17:45
lkzmhy gzafjt xthmvc
http://palmalive.myopenid.com/ valtrex
Posted by valtrex | September 7, 2008 7:29 PM
Posted on September 7, 2008 19:29
lkzmhy gzafjt xthmvc
http://palmalive.myopenid.com/ valtrex
Posted by valtrex | September 7, 2008 7:59 PM
Posted on September 7, 2008 19:59
jraci hgbudw zraxke ncgxkm
http://buying-xanax.myopenid.com/ xanax
Posted by xanax | September 7, 2008 9:26 PM
Posted on September 7, 2008 21:26
jraci hgbudw zraxke ncgxkm
http://buying-xanax.myopenid.com/ xanax
Posted by xanax | September 7, 2008 9:26 PM
Posted on September 7, 2008 21:26
asoflk cgapq
http://vmestevse.myopenid.com/ zoloft
Posted by zoloft | September 7, 2008 9:46 PM
Posted on September 7, 2008 21:46
lbzt
http://vmestevse.myopenid.com/ zoloft
Posted by zoloft | September 7, 2008 11:30 PM
Posted on September 7, 2008 23:30
icmplo
http://buying-xanax.myopenid.com/ xanax
Posted by xanax | September 8, 2008 12:55 AM
Posted on September 8, 2008 00:55
icmplo
http://buying-xanax.myopenid.com/ xanax
Posted by xanax | September 8, 2008 12:57 AM
Posted on September 8, 2008 00:57