Điều này được gọi là job control
dưới unix. Các &
thông báo cho shell để đặt lệnh trong nền. Điều này có nghĩa là nó tiếp tục chạy sys-snap.sh
lệnh nhưng trả bạn về trình bao của bạn để cho phép bạn tiếp tục thực hiện các lệnh song song.
Bạn có thể thấy danh sách các công việc hiện đang chạy bằng jobs
lệnh. Bạn có thể quay lại lệnh (đưa đến 'tiền cảnh) bằng cách sử dụng fg
lệnh. Điều này kéo lệnh trở lại trạng thái mà bạn không thấy dấu nhắc nào và bạn phải đưa ra Ctrl- Cđể giết tiến trình. Tuy nhiên, bạn có thể tạm dừng (tạm dừng) quá trình đó, ban hành Ctrl- Z. Điều này sẽ tạm dừng sys-snap.sh
và đưa bạn trở lại lời nhắc của bạn. Bạn có thể sau đó nền nó (như thể bạn đã phát hành nó với các &
) với bg
lệnh, và nó sẽ tiếp tục chạy từ nó dừng lại nhà nước Ctrl- Zđã đặt nó trong.
Lưu ý rằng bạn có thể có nhiều công việc cùng một lúc (như được hiển thị bởi jobs
):
[1]- Running sys-snap.sh &
[2]+ Running another-script.sh &
Bạn có thể làm nền và tiền cảnh cho họ bằng cách sử dụng số công việc của họ, %1
sẽ sys-snap.sh
và %2
sẽ another-script.sh
. Nếu bạn sử dụng fg
hoặc bg
không có đối số, nó sẽ thực hiện lệnh trên công việc được đánh dấu bởi +
trong jobs
đầu ra ở trên.
fg %1
sẽ đưa sys-snap.sh
trở lại vào nền trước, trong khi để lại another-script.sh
trong nền.
Bạn có thể đưa ra chuỗi Ctrl- Cđể chạy các công việc mà không cần phải tạo tiền đề cho chúng bằng kill
lệnh, kill %1
sẽ gửi tương đương Ctrl- Cđến sys-snap.sh
.
Nếu bạn đang sử dụng bash shell, man bash
lệnh có một phần chi tiết bên dưới phần có tiêu đề 'KIỂM SOÁT CÔNG VIỆC' sẽ đi sâu vào chi tiết hơn.
Đối với tên của sys-snap.sh
, dưới tên tệp unix là tùy ý (với một vài ngoại lệ như tệp trình tải động). Không có yêu cầu nào để chúng có phạm vi tệp cụ thể để làm cho chúng chạy như một tập lệnh shell, gọi các lệnh khác như perl
hoặc php
v.v. Nó thường được sử dụng để cung cấp sự rõ ràng, trong trường hợp này, đó là .sh
Shell Script sử dụng Bourne Shell /bin/sh
.
Phần chức năng của sys-snap.sh
(khi bạn xem nội dung của nó bằng một cái gì đó giống như less
lệnh) là Shebang . Trên dòng đầu tiên, bạn có thể sẽ tìm thấy một trong:
#! /bin/sh
#! /bin/bash
#! /usr/local/bin/bash
hoặc tương tự. Trong các điều khoản cơ bản, một lệnh sau khi #!
(chẳng hạn như /bin/sh
) được chạy và nội dung của phần còn lại của tệp tập lệnh được đưa đến một dòng tại một thời điểm. Lưu ý rằng tập tin cũng phải được thiết lập để thực thi chmod
để bạn có thể chạy nó dưới dạng một lệnh. Nếu quyền không được đặt, thì quyền đó shebang
không có hiệu lực, vì bạn sẽ gặp lỗi:
bash: sys-snap.sh: command not found
hoặc nếu bạn chạy nó bằng đường dẫn rõ ràng ./sys-snap.sh
( .
có nghĩa là thư mục làm việc hiện tại) bạn sẽ nhận được:
bash: ./sys-snap.sh: Permission denied
Cách khác là để lại nó mà không thực thi quyền và yêu cầu / bin / sh rõ ràng để chạy nó:
/bin/sh sys-snap.sh &
&&
khác với một ampersand&
không?