例 sh mycode Manu gg44 を実行します
そして、内容が Manu という名前のファイルを取得する必要があります: gg44 192.168.1.2.(2 行目) (この番号は以下で説明します)
(ディレクトリ DIR=/h/Manu/HOME/hosts には、既にファイル Alex cat Alex ff55 198.162.1.1.(2 行目) があります)
そのため、mycode は 1 行目で gg44 という Manu という名前のファイルを作成し、2 行目で IP を生成します。しかし、IP を生成するために、彼は Alex ファイルの IP と比較しています。したがって、Manu の 2 行目は 198.162.1.2 でなければなりません。ディレクトリに複数のファイルがある場合は、すべてのファイルの 2 行目をすべてチェックし、それらに従って生成する必要があります。
[CODE]
DIR=/h/Manu/HOME/hosts #this is a directory where i have my files (structure of the files above)
for j in $1 $2 #$1 is Manu; $2 is gg44
do
if [ -d $DIR ] #checking if directory exists (it exists already)
then #if it exists
for i in $* # for every file in this directory do operation
do
sort /h/ManuHOME/hosts/* | tail -2 | head -1 # get second line of every file
IFS="." read A B C D # divide number in second line into 4 parts (our number 192.168.1.1. for example)
if [ "$D" != 255 ] #compare D (which is 1 in our example: if its less than 255)
then
D=` expr $D + 1 ` #then increment it by 1
else
C=` expr $C + 1 ` #otherwise increment C and make D=0
D=0
fi
echo "$2 "\n" $A.$B.$C.$D." >/h/Manu/HOME/hosts/$1
done done #get $2 (which is gg44 in example as a first line and get ABCD as a second line)[/CODE]
その結果、Manu という名前で最初の行のファイルが作成されますが、2 行目は完全に間違っています。それは私に...1を与えます。また、エラー メッセージ sort: open failed: /h/u15/c2/00/c2rsaldi/HOME/hosts/yu: No such file or directory
ユン…1。