05-13-2013
Quote:
Originally Posted by
coldcoffeecup
I
Any idea why the contents of the directory are not being listed?
Yes: the shell evaluates its command line in consecutive distinct steps. When it expands aliases the phase where variables are expanded is already over. Therefore "$a" doesn't get expanded any more.
The solution to this is "eval", which restarts the commandline evaluation process. Read your shells documentation about "eval".
I hope this helps.
bakunin
This User Gave Thanks to bakunin For This Post:
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I have this script:
#!/bin/ksh
######### Environment Setup #########
PATH=/gers/nurev/menu/pub/sbin:/gers/nurev/menu/pub/bin:/gers/nurev/menu/pub/mac
:/gers/nurev/menu/adm/sbin:/gers/nurev/menu/adm/bin:/gers/nurev/menu/adm/mac:/ge... (5 Replies)
Discussion started by: heprox
5 Replies
2. Linux
hiii,
in many of the linux machines i have tried this but the result is the same everywhere.
if there are double letters in a hostname then that is displayed as single letter.
e.g. if hostname is set to nepttune then login into the shell will display :
NEPTUNE(admin)@/
$ hostname... (15 Replies)
Discussion started by: shamik
15 Replies
3. UNIX for Dummies Questions & Answers
I've noted that in order to use commands like ifconfig, I have to prefix the commands with the directory.
/etc/profile shows that the paths should be part of the PATH environment variable; any idea where the bug is?
:confused:
# /etc/profile
# System wide environment and startup... (1 Reply)
Discussion started by: jon80
1 Replies
4. UNIX for Dummies Questions & Answers
Hi there,
I have a ftp server called atlantis. Because of the f...g french characters, I noticed something very weird. Depending on what program I use (ftp, lftp or ssh) the same character is displayed as three different ways.
On my local computer, the file is correctly displayed as "modéles".... (1 Reply)
Discussion started by: chebarbudo
1 Replies
5. Forum Support Area for Unregistered Users & Account Problems
There was a problem with the site servicing our spam address checking. As a result all registrations were being rejected. If you have encountered this problem please try again and you should be permitted to join. (0 Replies)
Discussion started by: reborg
0 Replies
6. Shell Programming and Scripting
Afternoon,
I have a script which creates/modifies data into a formatted csv.
The trailer record should display 2 columns, the first is a static entry of "T" to identify it as a trailer record. The 2nd is a total of amounts in a column throughout the entire file.
My total isn't displaying... (8 Replies)
Discussion started by: mcclunyboy
8 Replies
7. UNIX for Dummies Questions & Answers
Hello I'm very new to Linux and shell scripting so I only know basic stuff. I'm making a script with the purpose of finding the longest string or word in a file. Here's what I got so far:
#!/bin/bash
longest=""
for i in $(strings -n $1); do
if ]
then
longest=$i
fi
done
echo $longest... (4 Replies)
Discussion started by: SCB
4 Replies
8. UNIX for Dummies Questions & Answers
If one:
$ find -name 'some expression' -type f > newfile
and then subsequently wants to create an alias file from each pathname the find command retrieved and the > placed within 'newfile', how would one do this? Ideally, the newly created alias files would all be in one directory.
I am... (3 Replies)
Discussion started by: Alexander4444
3 Replies
9. Shell Programming and Scripting
Hello All,
I am learning BASH scripting and I would appreciate any help with a small problem I am having...
I am writing a script that builds a simple hosts file for DNS reasons related to a piece of software called netdb by parsing another application's config files for IP's and their... (4 Replies)
Discussion started by: Wesley545
4 Replies
10. UNIX for Beginners Questions & Answers
Hi all
When I sftp to an Oracle cloud server, to a folder where there are more than 10k files, and list a small subset of files, it works OK. When I try list more than 10k files, it says file not found. Example output below.
(FYI ls/mget with 6k files works OK on this server)
Has anyone... (3 Replies)
Discussion started by: pdinsdale
3 Replies
eval(3tcl) Tcl Built-In Commands eval(3tcl)
__________________________________________________________________________________________________________________________________________________
NAME
eval - Evaluate a Tcl script
SYNOPSIS
eval arg ?arg ...?
_________________________________________________________________
DESCRIPTION
Eval takes one or more arguments, which together comprise a Tcl script containing one or more commands. Eval concatenates all its argu-
ments in the same fashion as the concat command, passes the concatenated string to the Tcl interpreter recursively, and returns the result
of that evaluation (or any error generated by it). Note that the list command quotes sequences of words in such a way that they are not
further expanded by the eval command.
EXAMPLES
Often, it is useful to store a fragment of a script in a variable and execute it later on with extra values appended. This technique is
used in a number of places throughout the Tcl core (e.g. in fcopy, lsort and trace command callbacks). This example shows how to do this
using core Tcl commands:
set script {
puts "logging now"
lappend $myCurrentLogVar
}
set myCurrentLogVar log1
# Set up a switch of logging variable part way through!
after 20000 set myCurrentLogVar log2
for {set i 0} {$i<10} {incr i} {
# Introduce a random delay
after [expr {int(5000 * rand())}]
update ;# Check for the asynch log switch
eval $script $i [clock clicks]
}
Note that in the most common case (where the script fragment is actually just a list of words forming a command prefix), it is better to |
use {*}$script when doing this sort of invocation pattern. It is less general than the eval command, and hence easier to make robust in |
practice. The following procedure acts in a way that is analogous to the lappend command, except it inserts the argument values at the
start of the list in the variable:
proc lprepend {varName args} {
upvar 1 $varName var
# Ensure that the variable exists and contains a list
lappend var
# Now we insert all the arguments in one go
set var [eval [list linsert $var 0] $args]
}
However, the last line would now normally be written without eval, like this: |
set var [linsert $var 0 {*}$args] |
SEE ALSO
catch(3tcl), concat(3tcl), error(3tcl), interp(3tcl), list(3tcl), namespace(3tcl), subst(3tcl), tclvars(3tcl), uplevel(3tcl)
KEYWORDS
concatenate, evaluate, script
Tcl eval(3tcl)