Tôi đã chỉnh sửa câu trả lời trên Hỏi Ubuntu đã gợi ý như sau
nohup gedit >& /dev/null &
Khi họ thực sự có nghĩa là
nohup gedit &> /dev/null &
Cái sau chuyển hướng chính xác cả stderr và stdout đến /dev/null
. Tôi đã hy vọng trước đây sẽ tạo một tệp có tên &
hoặc, nhiều khả năng, sẽ gây ra lỗi như trong các trường hợp khác:
$ echo "foo" >&
bash: syntax error near unexpected token `newline'
Thay vào đó, nó dường như hoạt động chính xác như trước đây, một gedit
cửa sổ xuất hiện và không có thông báo lỗi được in.
Tôi cũng cần lưu ý rằng đây là vỏ cụ thể:
bash
(4.2.45 (1) -release),zsh
(5.0.2),csh
(phiên bản gói deb: 20110502-2) vàtcsh
(6.18.01): hoạt động như mô tả ở trên, không có thông báo lỗi, không tạo tệp.dash
(0,5,7-3):$ nohup gedit >& /dev/null & $ dash: 2: Syntax error: Bad fd number
ksh
(93u + 2012-08-01): thất bại, nhưng một quá trình rõ ràng đã bắt đầu (1223
) mặc dù không cógedit
cửa sổ nào xuất hiện:$ nohup gedit >& /dev/null & [1] 1223 $ ksh: /dev/null: bad file unit number
fish
(2.0.0):> nohup gedit >& /dev/null & fish: Requested redirection to something that is not a file descriptor /dev/null nohup gedit >& /dev/null & ^
Vì vậy, tại sao lệnh này chỉ đơn giản chạy mà không có lỗi (và không có tệp đầu ra được tạo) trong một số shell và thất bại trong những cái khác? Việc >&
làm trong trường hợp đặc biệt rõ ràng là nohup
gì? Tôi đoán điều đó >& /dev/null
đang được hiểu là >&/dev/null
nhưng tại sao không gian lại gây ra lỗi trong các shell này?
nohup command
, Chạy tty độc lập application.According của bạn vào bộ nhớ của tôi, dash
mở rộng của ash
, Debian ash
, ash
được phát triển bởi OpenBSD
và đó là vỏ hạn chế, ngay cả hệ điều hành maemo (Debian Dựa trên N900 điện thoại di động) sử dụng dấu gạch ngang, ash
vỏ gia đình có sử dụng hạn chế mong đợi của bash hoặc tcsh.
dash
in phiên bản của nó ra nhưng gói là 0.5.7-3
, cái gì là của bạn? Ngoài ra, bạn có chắc là bạn đang chạy dash
? Đó là mặc định của Ubuntu sh
phải không?
nohup
đó xảy ra, câu hỏi của tôi là tại sao >&
dường như hoạt động với nohup một mình trong một số vỏ.
dash
.