cal 명령을 사용하여 쉘 스크립트를 작성하는 방법

cal 명령을 사용하여 쉘 스크립트를 작성하는 방법

스크립트를 실행하는 사용자가 월과 연도를 입력하면 표시되도록 쉘 스크립트를 만들고 싶지만 그렇게 하면 이 오류가 발생합니다. 누구든지 도와줄 수 있습니까?

이 모든 작업은 cal 명령을 사용하여 수행됩니다.

이건 내 스크립트야

#!/bin/bash
cal "" ""
echo  Write month and year
read cal
echo $cal

이것은 오류입니다

Write month and year
cal: year `' not in range 1..9999

이 문제를 어떻게 해결할 수 있나요?

답변1

스크립트가 실제로 수행하는 작업은 다음과 같습니다.

#!/bin/bash

## Run the command 'cal' with two empty strings as arguments
cal "" ""

## print the string "Write month and year"
echo  Write month and year

## read whatever value was given into the single variable "$cal"
read cal

## print out the contents of the variable "$cal"
echo $cal

내 생각에 당신은 다음을 의미한다고 생각합니다 :

#!/bin/sh

read -p "Write month and year: " month year

cal "$month" "$year"

그런 다음 다음과 같이 실행합니다(예제에서는 사용자 입력 42020).


$ foo.sh
Write month and year: 4 2020
     April 2020     
Su Mo Tu We Th Fr Sa
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30      

물론 이것은 기본 명령에 실제로 cal아무것도 추가 하지 않기 때문에 별로 의미가 없는 것 같습니다.

$ cal 4 2020
     April 2020     
Su Mo Tu We Th Fr Sa
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30      

답변2

#!/bin/bash
echo "enter the year"
read y
echo "enter the month"
read m
cal -m $m $y

-m 옵션을 사용한 후 우분투 시스템에서 테스트하고 작업합니다.

    January 2020      
Su Mo Tu We Th Fr Sa  
          1  2  3  4  
 5  6  7  8  9 10 11  
12 13 14 15 16 17 18  
19 20 21 22 23 24 25  
26 27 28 29 30 31  

관련 정보