Hãy xem xét tên tập lệnh (hơi ngớ ngẩn) sau đây 'test1.sh':
#/bin/bash
#
sleep 10 &
echo sleep pid = $!
pkill sleep
Khi tôi chạy nó, tôi không chỉ nhận được đầu ra của tiếng vang mà còn báo cáo về cái chết của giấc ngủ trên stderr:
$ ./test1.sh
sleep pid = 3551
./test1.sh: line 5: 3551 Terminated sleep 10
Trong trường hợp này, tôi muốn loại bỏ bản in ra stderr. Tôi biết tôi có thể làm điều đó trên dòng lệnh, như trong:
$ ./test1.sh 2> /dev/null
... nhưng có cách nào để ngăn chặn nó từ trong kịch bản không? (Tôi biết rằng tôi có thể gói nó trong một tập lệnh thứ hai và có trình bao bọc chuyển hướng nó, nhưng phải có một cái gì đó dễ dàng hơn ...)