2012-01-11 22 views
16

Tôi có một tập lệnh perl mà các biến ENV có thể được đặt để hướng các đầu ra cụ thể ví dụ: $ Debug, $ verbose, $ phát triển vvnohup VERBOSE = 1 perl script.pl

Thông thường tôi chạy các từ dòng lệnh

$ VERBOSE=1 perl myperlscript.pl params 

bây giờ tôi muốn chạy chúng bằng cách sử nohup. Sử dụng dòng lệnh

$ nohup VERBOSE=1 perl myperlscript.pl params 

rõ ràng là không đúng, là nỗ lực để thiết lập ENV {VERBOSE} được hiểu như là một param để nohup & tôi nhận được msg

nohup: thất bại trong việc chạy lệnh `VERBOSE = 1 ': Không có tệp hoặc thư mục nào như vậy

Cú pháp chính xác ở đây là gì? Tôi đang cố gắng để chạy này trên một hộp linux.

Trả lời

31

Đặt biến môi trường trước khi gọi nohup và mã sẽ được giữ nguyên khi nohup exec() s (thay thế chính nó bằng) perl.

$ VERBOSE=1 nohup perl myscript.pl params ... 
+0

cảm ơn. nên tự mình nghĩ về điều đó. Thật là một ngày dài ... – bobox

1

Cố gắng để kết hợp tất cả các lệnh vào shell script và chạy nó như thế: nohup /path/to/script.sh

Hoặc bạn có thể sử dụng xuất khẩu: xuất khẩu VERBOSE = 1 Và sau đó: nohup perl myperlscript.pl params

3

Đây chính là điều lệnh env dành cho:

$ env VAR1=VAL1 VAR2=VAL2 nohup perl myperlscript.pl params & 
Các vấn đề liên quan