如何使用命令 cal 创建 shell 脚本

如何使用命令 cal 创建 shell 脚本

我想创建一个 shell 脚本,使执行该脚本的用户在输入月份和年份时出现,但这样做时出现此错误,有人可以帮助我吗?

所有这些都将使用 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选项后测试并工作在ubuntu系统中测试

    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  

相关内容