![]() | |
eval has to be followed by a command name! |
$ type eval eval is a shell builtin
cmd='cat -n' $ echo aaa | $cmd 1 aaa
cmd='echo $$; cat -n' $ echo aaa | $cmd $$; cat -n
cmd='{ echo $$; cat -n; }' $ echo aaa | $cmd bash: {: command not found
cmd='cat -n; echo $$; ' echo aaa | $cmd + echo aaa + cat '-n;' echo '$$;' cat: invalid option -- ;
: Can anyone find an example in which eval would make a difference in this : code:
: a) : read -r cmd < $cmdlist : eval "$cmd" : b) : read -r cmd < $cmdlist : $cmd
#!/bin/sh
cat > foo.$$ <<-eof echo a| echo b eof
cmdlist=foo.$$
echo eval read cmd < $cmdlist eval "$cmd"
echo \!eval read cmd < $cmdlist $cmd
rm foo.$$
# gives: # eval b !eval a| echo b
documented on: 02-05-99 23:59:04