Linuxで、各ファイル名に数字が付いたシェルスクリプトのディレクトリがあり、ファイルがその特定の順序で実行されるドキュメントまたは使用例を探しています。この規則は何と呼ばれ、どこで使用されますか?
例えば:
0001-motd.sh
0002-proxy.sh
0300-ssh.sh
私はこれを以前に見たことがあることを知っています。
Linuxで、各ファイル名に数字が付いたシェルスクリプトのディレクトリがあり、ファイルがその特定の順序で実行されるドキュメントまたは使用例を探しています。この規則は何と呼ばれ、どこで使用されますか?
例えば:
0001-motd.sh
0002-proxy.sh
0300-ssh.sh
私はこれを以前に見たことがあることを知っています。
回答:
あなたが参照しているようです 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.
/etc/rc.*
)、ネットワークマネージャー補助スクリプト、X11
スタートアップ、一時停止/再開手順...
この方法/ハックがうまくいくかどうかはわかりません。しかし、私はあなたが正しいなら、これはうまくいくと思います。
[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]$
または
$ 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
スクリプトを作成し、それを使用して、任意のフォルダーで順番に(ファイル名に含まれる番号に従って、つまりxxxx-abcdefに従って)スクリプトを実行できます。
間違えたら訂正してください。
/etc/rc?.d
ディレクトリにあるランレベルスクリプトを考えていますか?