evalµÄÒÉÎÊ£¡
[dell@scsm dell]$ unamer=`uname -r`[dell@scsm dell]$ eval version=`echo $unamer | awk -F '.' '{ print "(" $1 " " $2 ")" }'`
[dell@scsm dell]$ echo $version
2
[dell@scsm dell]$ version=`echo $unamer | awk -F '.' '{ print "(" $1 " " $2 ")" }'`
[dell@scsm dell]$ echo $version
(2 4)
[dell@scsm dell]$ version="(2 4)"
[dell@scsm dell]$ echo $version
(2 4)
[dell@scsm dell]$ eval version="(2 4)"
[dell@scsm dell]$ echo $version
2
Ϊʲô¼ÓÈëevalºóversionÖµ·¢ÉúÁ˱仯£¬evalÆðµ½Ê²Ã´×÷Óã¿ version="(2 4)" Êǽ«×Ö·û´®¸³Öµ¸ø version; eval version="(2 4)" Ö´ÐÐʱ±ä³ÉÁË version=(2 4), ÊǰÑÊý×é (2 4) ¸³Öµ¸ø version:
[quote][font=Courier][color=blue]-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[16167 0][/color] [color=red]; eval v="(2 4)"
[/color][color=blue]-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[16167 0][/color] [color=red]; echo ${v[0]}
[/color]2
[color=blue]-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[16167 0][/color] [color=red]; echo ${v[1]}
[/color]4
[color=blue]-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[16167 0][/color] [color=red]; echo ${v[@]}
[/color]2 4
[color=blue]-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[16167 0][/color] [color=red]; bye
[/color][/font][/quote]
eval µÄ¹¦ÄÜÊǽ«Æä²ÎÊý×÷ΪÊäÈë´«¸øµ±Ç°µÄ shell ³£¼ûµÄ scripting languages (Èç perl, python, tcl, php) ¶¼ÓÐÌṩһ¸ö eval º¯Êý/Ö¸Áî, ÓÃÒÔ¶¯Ì¬¹¹Ôì²¢Ö´ÐÐÓï¾ä, ÕâÒ²ÊÇ scripting languages Çø±ðÓÚ C/C++ Ö®ÀàÓïÑÔµÄÒ»´óÌØµã/Óŵã :) :victory: Ã÷°×ÁË£¡Thank You Very Much! dearvoidÄܾٳöһЩevalµÄÀý×ÓÂ𣿠FYI:
[quote][font=Courier][color=magenta][/color][color=blue]-(dearvoid@LinuxEden:Forum)-(~/void/bash)-
[30470 0][/color] [color=red]; cat random.sh
[/color][color=magenta]#! /bin/bash
cmd="hexdump -e '\"%02x\" \"\\n\"' -n 4 /dev/random"
echo "\$ $cmd"
eval $cmd
cmd="echo \$RANDOM"
echo "\$ $cmd"
eval $cmd
[/color][color=blue]-(dearvoid@LinuxEden:Forum)-(~/void/bash)-
[30470 0][/color] [color=red]; ./random.sh
[/color][color=magenta]$ hexdump -e '"%02x" "\n"' -n 4 /dev/random
43dccb1f
$ echo $RANDOM
5486
[/color][color=blue]-(dearvoid@LinuxEden:Forum)-(~/void/bash)-
[30470 0][/color] [color=red]; bye
[/color][color=magenta][/color][/font][/quote]
[[i] ±¾Ìû×îºóÓÉ dearvoid ÓÚ 2007-8-27 11:27 ±à¼ [/i]] FYI:
[quote][font=Courier][color=blue]-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[21645 0][/color] [color=red]; cat foo.sh
[/color]#!/bin/sh
eval "v=\$(( $@ ))"
echo "$@ = $v"
[color=blue]-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[21645 0][/color] [color=red]; ./foo.sh 1 + 2
[/color]1 + 2 = 3
[color=blue]-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[21645 0][/color] [color=red]; ./foo.sh 3 '**' 3
[/color]3 ** 3 = 27
[color=blue]-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[21645 0][/color] [color=red]; ./foo.sh 7 '*' 11 '*' 13
[/color]7 * 11 * 13 = 1001
[color=blue]-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[21645 0][/color] [color=red]; bye
[/color][/font][/quote] ·Ç³£¸Ðл£¡»ØÈ¥×ÐϸÑо¿Ñо¿£¡ ǰ¼¸Ìì jiahuan ·¢µÄ°Ñ ASCII Âëת³É char µÄÀý×ÓÒ²¿ÉÒÔ½è¼øÒ»ÏÂ:
[quote][font=Courier][color=black][/color][color=blue]-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[30505 0][/color] [color=red]; cat ascii2chr.sh
[/color][color=black]#!/bin/bash
ascii2chr()
{
printf -v ascii '%x' $1
eval echo -e "'\\x$ascii'"
}
for i in 97 98 99; do
ascii2chr $i
done
[/color][color=blue]-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[30505 0][/color] [color=red]; ./ascii2chr.sh
[/color][color=black]a
b
c
[/color][color=blue]-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[30505 0][/color] [color=red]; bye
[/color][color=black][/color][/font][/quote] Àý×ӷdz£µÄºÃ£¡£¡£¡
Ò³:
[1]