스크립트를 실행하는 사용자가 월과 연도를 입력하면 표시되도록 쉘 스크립트를 만들고 싶지만 그렇게 하면 이 오류가 발생합니다. 누구든지 도와줄 수 있습니까?
이 모든 작업은 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"
그런 다음 다음과 같이 실행합니다(예제에서는 사용자 입력 4
및 2020
).
$ 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