weird csh thing
    The Grey Wolf 
    greywolf at unisoft.UUCP
       
    Wed Jan  9 12:15:47 AEST 1991
    
    
  
In article <BAGCHI.91Jan6000722 at snarf.eecs.umich.edu> bagchi at eecs.umich.edu (Ranjan Bagchi) writes:
>anyone care to explain??  (I`m in csh)
>
>
>$ set p = "w | tail +3 "
>$ echo $p
>w | tail +3
>$ $p
>Usage: w [ -hlsuw ] [ user ]
>$ w | tail +3
>benjo    ttyp3    10:13pm           41      4  -sh 
>benjo    ttyp4    10:17pm         3:22      4  -csh 
>$ exit
>$ exit
>
>Process shell finished
>
>
>shouldn't "$p" have the same effect as "w | tail +3" ?
>
>	-rj
Try:
% eval $p
Reasoning:
In csh, while the arguments remain individual in the case of variable
substitution, it is as though each argument has been quoted; specifically,
it is though you have requested the following command line to be executed:
% "w" "|" "tail" "+3"
The pipe is never seen by the shell.  To understand this one, try the
following:
% set p = "echo | & < >"
% $p
The same result occurs when one tries:
% set p = ( echo | & < > )
% $p
eval seems to be the only way to work around this problem.
-- 
On the 'Net:  Why are more and more fourth-level wizard(-wannabe)s trying to
invoke ninth-level magic, instead of taking the time to climb the other
(quite essential) thirteen levels so they can do this properly?
...!{ucbvax,acad,uunet,amdahl,pyramid}!unisoft!greywolf
    
    
More information about the Comp.unix.shell
mailing list