>So: the 'eval' do NOT evaluates value in double quotations or after backslash, but removes that quotations and backslashes!
Not exactly. Remember, the shell parses the entire line one time before "eval" gets to interpret it. Walking through:
The original line looks like this:
after the shell parses it one time, it looks like this:
Since the value of $aa is "final", thats what gets assigned to dn. But notice that $dn already had a value from a previous statement, and it was that value which got expanded into the literal string "final" before eval interpreted the code.
Also note that "$" evaluates to a literal dollar sign, because there is no way the shell can construe it as a variable indicator
further details on my wiki...
Last edited by vbe; 04-29-2009 at 05:18 AM..
Reason: Removed faulty URL (forum conformance...)
I don't understand this, can anyone explain the evaluation logic used here, and I would really appreciate a general explanation for it.
----------------------
Here's the korn script:
--------------------
#! /usr/bin/ksh
if ]
then
echo true
else
echo false
fi
if (( 2 > 10 ))
then... (1 Reply)
Can someone help me out here. I can't get this piece of code to work. i.e. $ALL_EVENTS does not get interpreted in the if brackets. The first part is the code, the second part is the execution of the code. Note: $ALL_EVENTS does equal 2, but there is no value once passed to the if statement. ... (4 Replies)
i need to output an ls command to a file but also capture any errors from that command and output them to a log file and the screen.
if it's only possible to output them to a log file and not the screen then that's fine.
this is what i've tried so far, but it won't populate log.txt. i've... (16 Replies)
Hi all.
So I have a problem. I have been doing real good figuring this stuff out on my own but Im a newbie and stuck on something that is probably real basic.
I want to get the following output from the who command:
User TTY Date Time
gd22a12 pts/1 Feb 1 11:34
gd22a13 pts/3 Feb 1... (13 Replies)
I apologize for the title but I am not even sure myself what to call this. I am going to use an example of a pizza delivery. I need to make an interactive script that allows users to order a certain number of pizzas, and then choose what they want on each pizza. Here is my code so far....
... (1 Reply)
Hi,
I had another question. I was wondering if there was a way to tab a line a variable number of times in tcsh. To go into details, I want to tab a line by how deep a file is in its path.
So here is an example code:
set filea=/blah1/blah2/blah3
set fileb=/blah1/blah2/blah3/blah4
set... (4 Replies)
Hello all,
I would like to create a for loop or whatever is quick that will print the one’s place of a number for 1-N times
say for example a printed page formatting is 132 characters wide,
I would like a single line
123456789012345678901234567890... ...012
That is 132 characters long. I... (11 Replies)
Hi
Please can you help how do I count the number of specific characters or words that appear in a file? (8 Replies)
Discussion started by: fretagi
8 Replies
LEARN ABOUT ULTRIX
exec
exec(1) User Commands exec(1)NAME
exec, eval, source - shell built-in functions to execute other commands
SYNOPSIS
sh
exec [argument...]
eval [argument...]
csh
exec command
eval argument...
source [-h] name
ksh
*exec [arg...]
*eval [arg...]
DESCRIPTION
sh
The exec command specified by the arguments is executed in place of this shell without creating a new process. Input/output arguments may
appear and, if no other arguments are given, cause the shell input/output to be modified.
The arguments to the eval built-in are read as input to the shell and the resulting command(s) executed.
csh
exec executes command in place of the current shell, which terminates.
eval reads its arguments as input to the shell and executes the resulting command(s). This is usually used to execute commands generated as
the result of command or variable substitution.
source reads commands from name. source commands may be nested, but if they are nested too deeply the shell may run out of file descrip-
tors. An error in a sourced file at any level terminates all nested source commands.
-h Place commands from the file name on the history list without executing them.
ksh
With the exec built-in, if arg is given, the command specified by the arguments is executed in place of this shell without creating a new
process. Input/output arguments may appear and affect the current process. If no arguments are given the effect of this command is to mod-
ify file descriptors as prescribed by the input/output redirection list. In this case, any file descriptor numbers greater than 2 that are
opened with this mechanism are closed when invoking another program.
The arguments to eval are read as input to the shell and the resulting command(s) executed.
On this man page, ksh(1) commands that are preceded by one or two * (asterisks) are treated specially in the following ways:
1. Variable assignment lists preceding the command remain in effect when the command completes.
2. I/O redirections are processed after variable assignments.
3. Errors cause a script that contains them to abort.
4. Words, following a command preceded by ** that are in the format of a variable assignment, are expanded with the same rules as a vari-
able assignment. This means that tilde substitution is performed after the = sign and word splitting and file name generation are not
performed.
EXIT STATUS
For ksh:
If command is not found, the exit status is 127. If command is found, but is not an executable utility, the exit status is 126. If a redi-
rection error occurs, the shell exits with a value in the range 1-125. Otherwise, exec returns a zero exit status.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWcsu |
+-----------------------------+-----------------------------+
SEE ALSO csh(1), ksh(1), sh(1), attributes(5)SunOS 5.10 17 Jul 2002 exec(1)