Trang chủ Thủ thuật

Sửa lỗi "ambiguous redirect" khi lập trình shell script

Bạn đã hiểu và biết cách khắc phục khi gặp phải lỗi "ambiguous redirect" trong quá trình lập trình bash shell script chưa? Hãy theo dõi ngay bài viết hướng dẫn sau đây.

Ví dụ:

Hôm nay tôi đã cố gắng lấy Thread Dump cho Java process trong lệnh đơn với ngày và tên máy chủ như sau:

$ jstack -l `pgrep java` > /tmp/TD_`hostname`_`date`_`pgrep java`

Nhưng sau đó lỗi sau hiện ra:

-bash: /tmp/TD_`hostname`_`date`_`pgrep java`: ambiguous redirect

Cách sửa lỗi:

$ echo foo > /tmp/TD_`hostname`_`date`_`pgrep java`

bash: /tmp/TD_`hostname`_`date`_`pgrep java`: ambiguous redirect

$ echo foo > /tmp/"TD_`hostname`_`date`_`pgrep java`"

$ ls /tmp/TD*


/tmp/TD_muru-arch_Sat 26 Dec 16:14:29 IST 2015

Tóm lại: Lệnh jstack -l `pgrep java`> / tmp / TD_`hostname`_`date`_`pgrep java` sai.

Đúng sẽ là: jstack -l `pgrep java` > /tmp/"TD_`hostname`_`date`_`pgrep java` "

Chúc các bạn thành công.

Dịch từ: thelinuxmen.blogspot.com/2015/12/how-to-avoid-ambiguous-redirect-error.html

>> Có thể bạn quan tâm: Hướng dẫn cài đặt cấu hình định tuyến tĩnh trên Router Cisco