Saya sedang mencari cara untuk mengkonversi heksadesimal melalui baris perintah dan menemukan ada metode yang sangat mudah echo $((0x63))
.
Ini bekerja dengan baik tetapi saya agak bingung dengan apa yang terjadi di sini.
Saya tahu $(...)
biasanya sub-shell, di mana isinya dievaluasi sebelum perintah luar.
Apakah ini masih menjadi sub-shell dalam situasi ini? Saya berpikir tidak karena itu berarti sub-shell hanya mengevaluasi (0x63)
yang bukan perintah.
Bisakah seseorang meruntuhkan perintah untuk saya?
$((...))
konflik dengan substitusi perintah, kita harus ingat untuk menulisecho "$( (echo x; echo y) | tr xy yx)"
alih-alihecho "$((echo x; echo y) | tr xy yx)"
(walaupun beberapa shell masih akan menerima yang terakhir, YMMV).