쉘 스크립트의 두 단어 인수-Unix

Spirit_Scarlet

쉘 스크립트에 문제가 있습니다. 인덱스, 날짜, 시간 1 (간격의 시작), 시간 2 (간격의 끝)와 같은 인수를 읽어야합니다. time1-time2 시간 간격에서 사용자 (인덱스)가 주어진 날짜에 로그인 한 횟수를 계산해야합니다. 예 : 121212 "Jan 14"00 12

이것은 작동하지만 인수 날짜에 문제가 있습니다. 그것은 하나의 주장으로 인식하지 않습니다. 1 월과 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"
미카 스미스

에 대한 man 항목 read에서

The characters in IFS are used to split the line into words.

그리고 IFS시스템 의 기본값 은 아마도 공간입니다. 단어 구분 기호로 사용하지 않으려는 공백을 이스케이프하여 즉시 문제를 해결할 수 있습니다.

121212 Jan\ 14 00 12

귀하의 목적에 맞게 작동해야합니다.

그러나 물론 이것은 이상적인 솔루션이 아닙니다. 한 가지 가능성은 스크립트가 호출 된 후 읽기를 통하지 않고 명령 줄의 스크립트에 인수를 전달하는 것입니다.

#!/bin/bash

user="$1"
date="$2"
time1="$3"
time2="$4"
#etc

명령 줄 인수 처리에 대한 자세한 내용은 http://www.shelldorado.com/goodcoding/cmdargs.html참조 하십시오 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

쉘 스크립트의 두 단어 인수

분류에서Dev

두 개의 독립적 인 쉘 스크립트간에 변수 공유

분류에서Dev

Unix 쉘 스크립트

분류에서Dev

Unix 쉘 스크립트의 산술

분류에서Dev

Unix 쉘 스크립트의 산술

분류에서Dev

쉘 스크립트의 단위 승수 변환

분류에서Dev

쉘 스크립트는 특정 단어 뒤에 몇 개의 단어를 인쇄합니다.

분류에서Dev

간단한 쉘 스크립트, 너무 많은 인수

분류에서Dev

두 개의 인수를 취하고이를 확인한 다음 첫 번째 (파일) 인수를 두 번째 (디렉토리) 인수에 복사하는 간단한 BASH 쉘 스크립트 만들기

분류에서Dev

두 파일 사이의 발생 횟수 증가를 찾는 쉘 스크립트

분류에서Dev

쉘 스크립트에서 두 개의 16 진수를 곱하는 방법

분류에서Dev

쉘 스크립트의 두 변수에서 공통 값을 찾는 방법

분류에서Dev

쉘 스크립트의 두 변수에서 공통 값을 찾는 방법

분류에서Dev

Unix 쉘 스크립트 기능

분류에서Dev

Unix 쉘 스크립트의 문자열에서 문자를 어떻게 제거합니까?

분류에서Dev

Unix 쉘 스크립트 호출의 의미 이해

분류에서Dev

다른 파일의 텍스트와 함께 두 개의 연속 단어를 인쇄하는 Python 스크립트

분류에서Dev

쉘 스크립트의 변수 보간

분류에서Dev

쉘 스크립트의 부울 변수

분류에서Dev

쉘 스크립트의 목록 변수는 어떻게 되나요?

분류에서Dev

더 높은 수준의 스크립팅 언어가 쉘 스크립트를 사용하여 작동합니까?

분류에서Dev

단일 쉘 스크립트에서 여러 쉘 스크립트를 시작하는 효율적인 방법

분류에서Dev

UNIX 쉘 스크립트의 중첩 표현식

분류에서Dev

쉘 스크립트에 인수 전달

분류에서Dev

쉘 스크립트에서 두 개의 특수 헌장 사이의 문자열 교체

분류에서Dev

쉘 스크립트에서 쉘 스크립트 행을 어떻게 인쇄합니까?

분류에서Dev

두 개의 16 진수를 추가하고 쉘 스크립트에 16 진수로 저장

분류에서Dev

특수 문자의 존재를 테스트하고 특수 파일을 차단하는 쉘 스크립트

분류에서Dev

쉘 스크립트에서 두 개의 명령을 동시에 실행할 수 있습니까?

Related 관련 기사

  1. 1

    쉘 스크립트의 두 단어 인수

  2. 2

    두 개의 독립적 인 쉘 스크립트간에 변수 공유

  3. 3

    Unix 쉘 스크립트

  4. 4

    Unix 쉘 스크립트의 산술

  5. 5

    Unix 쉘 스크립트의 산술

  6. 6

    쉘 스크립트의 단위 승수 변환

  7. 7

    쉘 스크립트는 특정 단어 뒤에 몇 개의 단어를 인쇄합니다.

  8. 8

    간단한 쉘 스크립트, 너무 많은 인수

  9. 9

    두 개의 인수를 취하고이를 확인한 다음 첫 번째 (파일) 인수를 두 번째 (디렉토리) 인수에 복사하는 간단한 BASH 쉘 스크립트 만들기

  10. 10

    두 파일 사이의 발생 횟수 증가를 찾는 쉘 스크립트

  11. 11

    쉘 스크립트에서 두 개의 16 진수를 곱하는 방법

  12. 12

    쉘 스크립트의 두 변수에서 공통 값을 찾는 방법

  13. 13

    쉘 스크립트의 두 변수에서 공통 값을 찾는 방법

  14. 14

    Unix 쉘 스크립트 기능

  15. 15

    Unix 쉘 스크립트의 문자열에서 문자를 어떻게 제거합니까?

  16. 16

    Unix 쉘 스크립트 호출의 의미 이해

  17. 17

    다른 파일의 텍스트와 함께 두 개의 연속 단어를 인쇄하는 Python 스크립트

  18. 18

    쉘 스크립트의 변수 보간

  19. 19

    쉘 스크립트의 부울 변수

  20. 20

    쉘 스크립트의 목록 변수는 어떻게 되나요?

  21. 21

    더 높은 수준의 스크립팅 언어가 쉘 스크립트를 사용하여 작동합니까?

  22. 22

    단일 쉘 스크립트에서 여러 쉘 스크립트를 시작하는 효율적인 방법

  23. 23

    UNIX 쉘 스크립트의 중첩 표현식

  24. 24

    쉘 스크립트에 인수 전달

  25. 25

    쉘 스크립트에서 두 개의 특수 헌장 사이의 문자열 교체

  26. 26

    쉘 스크립트에서 쉘 스크립트 행을 어떻게 인쇄합니까?

  27. 27

    두 개의 16 진수를 추가하고 쉘 스크립트에 16 진수로 저장

  28. 28

    특수 문자의 존재를 테스트하고 특수 파일을 차단하는 쉘 스크립트

  29. 29

    쉘 스크립트에서 두 개의 명령을 동시에 실행할 수 있습니까?

뜨겁다태그

보관