2011-11-16 21 views
6

Tôi đang cố gắng chạy tập lệnh với nohup, nhưng lệnh sẽ xảy ra để có một dòng tham số toàn bộ với biến $ *. Tôi cố gắng chạy lệnh như thế này:chạy lệnh nohup trên tập lệnh lấy tất cả tham số

nohup time ./build_all all & 

Nhưng điều này đem lại cho tôi những lỗi sau đây trong nohup.out:

./build_all: DISPLAY=ted:0.0: is not an identifier 

Bất kỳ trợ giúp đánh giá cao.

Ted

============================================= =========================================

Tôi nhận ra rằng Peter John Acklam đã đúng. Lỗi này không phải do không có nohup, nhưng vì kịch bản, tôi không chắc mình đang làm gì sai vì cú pháp có vẻ đúng với tôi. Nó cũng khá kỳ lạ khi tôi tự chạy kịch bản, tôi không thấy lỗi, nhưng khi tôi cố gắng chạy với nohup, tôi thấy lỗi lạ.

Nhưng dù sao, sự khởi đầu của kịch bản trông như thế này:

#!/bin/bash 

export DISPLAY=ted:0.0 # sets the display 
export RELEASE=v1.0 

node=`uname -n` 

Trả lời

6

Đơn giản chỉ cần đặt các đối số “build_all” trên dòng lệnh, như đối với bất kỳ lệnh khác:

nohup time ./build_all args to build_all go here & 

và đối số sẽ được chuyển đến “build_all”, không phải là “time” hoặc “nohup”. Dấu và sẽ được diễn giải chính xác bởi trình bao, và sẽ không được chuyển làm đối số cho bất kỳ lệnh nào.

+0

thật kỳ lạ, điều đó dường như không hoạt động khi tôi thử. Các lỗi có thể đã được một nơi khác sau đó. – Flethuseo

+0

Tôi đã làm như bạn đề xuất nhưng, tôi thực sự gặp lỗi lạ với biến DISPLAY – Flethuseo

+0

Lỗi biến “DISPLAY” là do lỗi cú pháp trong “build_all” và không liên quan gì đến “nohup” hoặc “time”. Có lẽ bạn có thể hiển thị dòng trong “build_all” có chứa chuỗi “DISPLAY = ted: 0.0”? –

1

Đối số tập lệnh (tham số) chỉ cần thực hiện theo tên của tập lệnh và đặt trước dấu và.

Các vấn đề liên quan