Điểm:0

sự khác biệt giữa "command.sh > /dev/null 2>&1" so với "command.sh 2>&1 >/dev/null"

lá cờ us

Tôi có nhiều tập lệnh shell và python trên crontab của mình kết thúc bằng:

command.sh > /dev/null 2>&1

hoặc

command.sh 2>&1 >/dev/null

Tôi biết điều đó:

> là để chuyển hướng

/dev/null là một lỗ đen mà mọi dữ liệu được gửi đi sẽ bị loại bỏ

2 là bộ mô tả tệp cho Lỗi tiêu chuẩn

> là để chuyển hướng

& là ký hiệu cho bộ mô tả tệp (không có nó, 1 sau đây sẽ được coi là tên tệp)

1 là bộ mô tả tệp cho Standard Out

Vì vậy command.sh >/dev/null 2>&1 chuyển hướng đầu ra của chương trình của tôi thành/dev/null. Bao gồm cả Lỗi tiêu chuẩn và Hết tiêu chuẩn.

cả hai đều có cùng kết quả và hoạt động tốt, nhưng tại sao một số sử dụng loại đầu tiên và một số sử dụng loại kia?

Điểm:1
lá cờ ng

Các lệnh đang thực hiện hai chuyển hướng:

  • > /dev/null chuyển hướng Đầu ra tiêu chuẩn sang /dev/null
  • 2>&1 chuyển hướng Lỗi tiêu chuẩn sang Đầu ra tiêu chuẩn

Như bạn đã đoán đúng, hiệu ứng toàn cầu là cả Đầu ra Tiêu chuẩn và Lỗi Tiêu chuẩn đều được chuyển hướng đến /dev/null.

Cả hai chuyển hướng đều có nghĩa là được giải thích bởi trình bao chứ không phải bởi chương trình thực tế được gọi; do đó chúng được thêm vào cuối dòng lệnh. Chúng khác biệt về mặt logic, mặc dù tác động của chúng là tích lũy; do đó chúng có thể được chỉ định theo bất kỳ thứ tự nào bạn thích.

TL; DR: hai lệnh hoàn toàn tương đương, sự khác biệt hoàn toàn là thẩm mỹ.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.