シェルスクリプトの2つの単語パラメータ

シェルスクリプトの2つの単語パラメータ

シェルスクリプトに問題があります。インデックス、日付、time1(間隔の開始)、time2(間隔の終わり)パラメータを読み取る必要があります。 time1-time2時間間隔内に特定の日付にユーザー(インデックス)がログインした回数を数える必要があります。

例: 121212 "1月14日" 00 12

これは機能しますが、パラメータの日付に問題があります。パラメータとして扱いません。 Janと14"に分かれていますが、これは大きな問題です。数時間インターネットを検索しましたが、どこにも解決策が見つかりませんでした。私のコードは次のとおりです。

#!/bin/bash

read user date time1 time2
list=`last | grep ^$user.*$date | awk '{ print $7 }'`

start=$time1
end=$time2

echo "start $start"
echo "end $end"
count=0
for el in $list ;
do
      login=$el
echo "najava $najava"

checkIf(){
        current=$login
         [[ ($start = $current || $start < $current) && ($current = $end || $current < $end) ]]
}
if checkIf; then
        count=`expr $count + 1`
        ip=`last | grep ^$user.*$date.*$login | awk '{ print $3 }'`
        echo $ip >> address.txt
else
        continue
fi
  done
  echo "The user has logged in $count times in the given time interval"

ベストアンサー1

$ 1、$ 2、$ 3、$ 4、...をコマンドライン引数として使用してみてください(読み取りではなく)。

次のコマンドを使用してスクリプトを呼び出します。

./script.sh 121212 "Jan 14" 00 12

おすすめ記事