eval in shell scripting


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
# 1  
eval in shell scripting

what is the real usage of eval in shell scripting

whats the difference between
$ cmd

&&
eval cmd
# 2  
eval is useful when cmd contains something which needs to be evaluated by the shell. The typical case would be when you have a variable containing the index of an argument you want to access.

Code:
n=1  # or whatever, just to make this self-contained
eval echo \${$n}

Search these forums for examples; some of them are rather elaborate.
# 3  
but whats the difference if i write

echo $($n) instead of

eval echo \${$n}
# 4  
Experiment to see.

Code:
vnix$ n=1
vnix$ echo $($n)
bash: 1: command not found
vnix$ n="date"
vnix$ echo $($n)
Wed May 21 20:39:00 EEST 2008

So it uses the value of $n as a command. (It's the same as echo `$n` with backticks.)

Contrast:

Code:
vnix$ set -- one two three  # sets $1 $2 $3
vnix$ echo $1
one
vnix$ n=1
vnix$ echo ${$n}  # attempt to echo $1
bash: ${$n}: bad substitution
vnix$ eval echo \${$n}
one

See? Now if you assign n=2 it will echo the value of $2, etc. So you can change the name of the variable you are referring to programmatically, dynamically.

This is an advanced topic; if you don't have a use for it, don't bother. If you really want to understand this, I suggest you play around with set -x and try different things until you understand what's going on.
These 3 Users Gave Thanks to era For This Post:
# 5  
thanks its convincing and clear ..

thanks for the help
# 6  
querry..including scripts into another script

is there any way to include or import one script into other
like application programs
# 7  
Include as in..? You can call one script from the other. That can work.
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Error in eval eval command to print html tags

anyone has any info on why this is complaining??? vivek@vivek-c5e55ef2e ~/TAC $ zoneCounter=1 vivek@vivek-c5e55ef2e ~/TAC $ optUsage1=23% vivek@vivek-c5e55ef2e ~/TAC $ eval eval echo "<th>Zone $zoneCounter </th><th align=\"left\"> \$optUsage$zoneCounter </th>" -bash: syntax error... (13 Replies)
Discussion started by: vivek d r
13 Replies

2. Shell Programming and Scripting

Error in eval eval command to print html tags

anyone has any info on why this is complaining??? vivek@vivek-c5e55ef2e ~/TAC $ zoneCounter=1 vivek@vivek-c5e55ef2e ~/TAC $ optUsage1=23% vivek@vivek-c5e55ef2e ~/TAC $ eval eval echo "<th>Zone $zoneCounter </th><th align=\"left\"> \$optUsage$zoneCounter </th>" -bash: syntax error... (1 Reply)
Discussion started by: vivek d r
1 Replies

3. Shell Programming and Scripting

Strange result of eval, how does eval really work with ssh?

Hi all, some small script with eval turned me to crazy. my OS is linux Linux s10-1310 2.6.16.53-0.8.PTF.434477.3.TDC.0-smp #1 SMP Fri Aug 31 06:07:27 PDT 2007 x86_64 x86_64 x86_64 GNU/Linux below script works well #!/bin/bash eval ssh remotehost date eval ssh remotehost ls below... (1 Reply)
Discussion started by: summer_cherry
1 Replies

4. Web Development

Perl scripting or shell scripting?

i am going to study any one of the scripting languages mentioned above(shell 0r perl scripting) . Which is having more scope for a fresher? (1 Reply)
Discussion started by: Anna Hussie
1 Replies

5. UNIX for Advanced & Expert Users

Variable assignments specified with eval shell built-in

According to the POSIX specifications eval is a special shell built-in, which should imply that variable assignments specified together with it should remain in effect after the built-in completes. Thus one would expect IFS to be changed after this: var=$'a\nb c' $ IFS=$'\n' eval ' for i in... (4 Replies)
Discussion started by: Scrutinizer
4 Replies

6. Shell Programming and Scripting

eval in shell scripting

I am stuck on something that should really be simple, and was looking for some help.. I am new to shell scripting.Need help on this..... The script is to find the stale nfs. cat file - - - - /abcd/1234 I am writing the script to check the nfs errors of above file ... (3 Replies)
Discussion started by: nareshkumar522
3 Replies

7. Shell Programming and Scripting

Call Shell scripting from Perl Scripting.

Hi How to call a shell scripting through a Perl scripting? Actually I need some value from Shell scripting and passes in the Perl scripting. So how can i do this? (2 Replies)
Discussion started by: anupdas
2 Replies

8. Shell Programming and Scripting

shell - word splitting - using eval

In POSIX shell, we don't have arrays, but we can iterate over a list like this: #!/bin/sh list="Fred Barney Wilma Betty" for i in $list; do echo $i; done Fred Barney Wilma Betty But let's say we want "Mr. Slate" in the list. We know we can't just stick him in there like this:... (5 Replies)
Discussion started by: mjd_tech
5 Replies

9. Shell Programming and Scripting

bash shell: 'exec', 'eval', 'source' - looking for help to understand

Hi, experts. Whould anybody clear explay me difference and usage of these 3 commands (particulary in bash) : exec eval source I've tryed to read the manual pages but did not get much. Also could not get something useful from Google search - just so much and so not exactly, that is... (3 Replies)
Discussion started by: alex_5161
3 Replies

10. Shell Programming and Scripting

difference between AIX shell scripting and Unix shell scripting.

please give the difference between AIX shell scripting and Unix shell scripting. (2 Replies)
Discussion started by: haroonec
2 Replies

Featured Tech Videos