LinuxÒÁµéÔ°ÂÛ̳'s Archiver

TUDOU01 ·¢±íÓÚ 2007-8-27 08:35

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Æðµ½Ê²Ã´×÷Óã¿

dearvoid ·¢±íÓÚ 2007-8-27 09:02

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

dearvoid ·¢±íÓÚ 2007-8-27 09:07

³£¼ûµÄ scripting languages (Èç perl, python, tcl, php) ¶¼ÓÐÌṩһ¸ö eval º¯Êý/Ö¸Áî, ÓÃÒÔ¶¯Ì¬¹¹Ôì²¢Ö´ÐÐÓï¾ä, ÕâÒ²ÊÇ scripting languages Çø±ðÓÚ C/C++ Ö®ÀàÓïÑÔµÄÒ»´óÌØµã/Óŵã :)

TUDOU01 ·¢±íÓÚ 2007-8-27 09:48

:victory: Ã÷°×ÁË£¡Thank You Very Much!

TUDOU01 ·¢±íÓÚ 2007-8-27 10:43

dearvoidÄܾٳöһЩevalµÄÀý×ÓÂð£¿

dearvoid ·¢±íÓÚ 2007-8-27 11:14

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]]

dearvoid ·¢±íÓÚ 2007-8-27 11:19

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]

TUDOU01 ·¢±íÓÚ 2007-8-27 13:57

·Ç³£¸Ðл£¡»ØÈ¥×ÐϸÑо¿Ñо¿£¡

dearvoid ·¢±íÓÚ 2007-8-27 15:23

ǰ¼¸Ìì 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]

TUDOU01 ·¢±íÓÚ 2007-8-27 20:20

Àý×ӷdz£µÄºÃ£¡£¡£¡

Ò³: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.