【发布时间】:2018-04-14 06:04:21
【问题描述】:
我正在编写一个应该接受的日历脚本
-
mm或mmm格式的任意月份,或 - 只有
yyyy的年份,或者 - 月份和年份。
这是我的脚本:
#!/bin/bash
if test s# -eq 0
then
echo "Invalid Arguments"
else
if test s# -eq 2
then
if $1 -gt 1999 -o $2 -gt 12
then
echo "invalid Year or month"
else
cal $1 $2
if test s# -eq 1
then
if test $1 -gt 12
then
cal $1
else
case $1 in
01) m = jan;;
02) m = feb;;
03) m = mar;;
04) m = apr;;
05) m = may;;
06) m = jun;;
07) m = jul;;
08) m = aug;;
09) m = sep;;
10) m = oct;;
11) m = nov;;
12) m = dec;;
esac
echo " Calender for $1 Month : "
cal $m
fi
fi
我收到此错误:
第 38 行:语法错误:文件意外结束
我该如何解决这个问题?
【问题讨论】:
-
每个
if都需要有一个匹配的fi。 -
我已经缩进了你的代码。现在问题应该很明显了。
-
以后,我建议在发布此类问题之前使用shellcheck.net。它发现了很多常见的错误。
-
所有
s#应该是$#
标签: linux bash shell ubuntu unix