Câu trả lời:
Bash thực hiện một loạt các mở rộng trước khi lệnh được thực thi ( sudo
trong trường hợp này). Trong trường hợp đầu tiên, việc thay thế lệnh được thực hiện bởi vì nó nằm trong dấu ngoặc kép - nó thực thi như bạn, do đó xảy ra lỗi. Trong trường hợp thứ hai, các trích dẫn đơn ngăn chặn việc mở rộng, do đó, backticks không được thay thế cho đến khi shell của root hoạt động.
Xem thêm https://www.gnu.org/software/bash/manual/bashref.html#Quote