Trường hợp sử dụng trong đó tên tệp script có số dẫn đầu để xác định thứ tự thực hiện


9

Tôi đang tìm tài liệu hoặc trường hợp sử dụng trong Linux có một thư mục chứa các tập lệnh shell trong đó mỗi tên tệp được dẫn bằng một số và các tệp được chạy theo thứ tự cụ thể đó. Quy ước này được gọi là gì, và nó được sử dụng ở đâu?

Ví dụ:

0001-motd.sh
0002-proxy.sh
0300-ssh.sh

Tôi biết tôi đã thấy điều này trước đây, chỉ không chắc nó được gọi là ở đâu hoặc cái gì.


1
Bạn đang nghĩ về các kịch bản runlevel có trong /etc/rc?.dthư mục?
John Anderson

Câu trả lời:


12

Có vẻ như bạn đang đề cập đến run-parts

NAME
       run-parts - run scripts or programs in a directory

SYNOPSIS
       run-parts  [--test]  [--verbose] [--report] [--lsbsysinit] [--regex=RE]
       [--umask=umask] [--arg=argument] [--exit-on-error] [--help] [--version]
       [--list] [--reverse] [--] DIRECTORY

       run-parts -V

DESCRIPTION
       run-parts  runs  all  the  executable  files  named  within constraints
       described below, found in directory directory.  Other files and  direc
       tories are silently ignored.

       If neither the --lsbsysinit option nor the --regex option is given then
       the names must consist entirely of ASCII upper- and lower-case letters,
       ASCII digits, ASCII underscores, and ASCII minus-hyphens.

       If  the  --lsbsysinit  option  is given, then the names must not end in
       .dpkg-old  or .dpkg-dist or .dpkg-new or .dpkg-tmp, and must belong  to
       one  or more of the following namespaces: the LANANA-assigned namespace
       (^[a-z0-9]+$);   the   LSB   hierarchical   and   reserved   namespaces
       (^_?([a-z0-9_.]+-)+[a-z0-9]+$);  and  the  Debian cron script namespace
       (^[a-zA-Z0-9_-]+$).

       If the --regex option  is  given,  the  names  must  match  the  custom
       extended regular expression specified as that option's argument.

       Files  are  run  in  the  lexical  sort order (according to the C/POSIX
       locale character collation rules) of their names unless  the  --reverse
       option is given, in which case they are run in the opposite order.

Đúng. Nó được sử dụng ở rất nhiều nơi. Các tệp init SysV cũ (trong /etc/rc.*), tập lệnh phụ trợ của trình quản lý mạng, phần X11khởi động, quy trình tạm dừng tiếp tục ....
Rmano

-1

Tôi không biết, phương pháp / hack này sẽ hoạt động hay không cho trường hợp của bạn. Nhưng, tôi nghĩ rằng điều này sẽ làm việc nếu tôi hiểu bạn đúng.

[feddy@localhost ~]$ mkdir test
[feddy@localhost ~]$ cd test
[feddy@localhost test]$ ls
[feddy@localhost test]$ vi 0001-ko.sh
[feddy@localhost test]$ cp 0001-ko.sh 0002-ko.sh
[feddy@localhost test]$ cp 0001-ko.sh 0004-ko.sh
[feddy@localhost test]$ cp 0001-ko.sh 0005-ko file.sh
[feddy@localhost test]$ cp 0001-ko.sh 0008-ko.sh
[feddy@localhost test]$ ls
0001-ko.sh  0002-ko.sh  0004-ko.sh  0005-ko file.sh  0008-ko.sh

[feddy@localhost test]$ for i in *
> do
> bash "$i"
> done
file 0001-ko.sh
file 0002-ko.sh
file 0004-ko.sh
file 0005-ko file.sh
file 0008-ko.sh
[feddy@localhost test]$

HOẶC LÀ

$ find . -iname "*.sh"|while read f; do bash "$f"; done
file ./0001-ko1.sh
file ./0002-ko1.sh
file ./0005-ko1 file.sh
file ./0005-ko1.sh

Bạn có thể tạo một tập lệnh và sử dụng nó để thực thi các tập lệnh theo thứ tự (theo các số có trong tên tệp tức là xxxx-abcdef) trong bất kỳ thư mục nào.

Xin hãy sửa tôi nếu tôi hiểu sai.


@steel ấn, xin lỗi, nếu tên tệp sẽ chứa khoảng trắng thì mã này không hoạt động chính xác. Xin lỗi lần nữa vì lỗi của tôi, tôi sẽ cập nhật nó. Cảm ơn vì đã nhắc tôi.
bsdboy

Tôi khá chắc chắn rằng thứ tự sắp xếp của các trận đấu toàn cầu (nếu được bật) tuân theo cài đặt đối chiếu cục bộ.
David Foerster

@DavidFoerster, vâng tôi cũng nghĩ vậy.
bsdboy

Bất cứ ai, những người sẵn sàng hạ thấp bất kỳ câu trả lời nào trên các trang web StackExchange, ít nhất là nói với tác giả, anh ta đã mắc lỗi gì, vì vậy, từ lần sau, anh ta sẽ đảm bảo rằng điều tương tự sẽ không xảy ra lần nữa. Bởi vì nó cần rất nhiều thời gian và nỗ lực để viết một câu trả lời thích hợp cho người khác. Và, Downvoters chỉ cần nhấp vào một mũi tên xuống, đó là tất cả.
bsdboy

Tôi đã không bỏ phiếu cho câu trả lời này, nhưng câu hỏi yêu cầu tài liệu - "hoặc cái này được gọi là gì?", Không phải là một kịch bản để làm điều đó.
Joe
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.