Apa yang dapat Anda lakukan dengan eval
memerintah? Mengapa berguna? Apakah ini semacam fungsi bawaan di bash? Tidak ada man
halaman untuk itu..
Jawaban yang Diterima:
eval
adalah bagian dari POSIX. Ini adalah antarmuka yang dapat berupa shell built-in.
Ini dijelaskan dalam "Panduan Programmer POSIX":http://www.unix.com/man-page/posix/1posix/eval/
eval - construct command by concatenating arguments
Ini akan mengambil argumen dan membuat perintahnya, yang akan dieksekusi oleh shell. Ini adalah contoh halaman manualnya:
1) foo=10 x=foo
2) y='$'$x
3) echo $y
4) $foo
5) eval y='$'$x
6) echo $y
7) 10
- Pada baris pertama Anda mendefinisikan
$foo
dengan nilai'10'
dan$x
dengan nilai'foo'
. - Sekarang tentukan
$y
, yang terdiri dari string'$foo'
. Tanda dolar harus diloloskan
dengan'$'
. - Untuk memeriksa hasilnya,
echo $y
. - Hasilnya akan menjadi string
'$foo'
- Sekarang kita ulangi tugas dengan
eval
. Ini pertama-tama akan mengevaluasi$x
ke string'foo'
. Sekarang kita memiliki pernyataany=$foo
yang akan dievaluasi menjadiy=10
. - Hasil dari
echo $y
sekarang nilainya'10'
.
Ini adalah fungsi umum dalam banyak bahasa, mis. Perl dan JavaScript.
Lihat perldoc eval untuk contoh lainnya:http://perldoc.perl.org/functions/eval.html