在月份和年份执行linux中的cal函数

时间:2013-04-09 23:04:20

标签: unix

我正在为一个开始的unix / linux类编写一个bash脚本,该类具有用户输入他们想要查看的月份和年份。鉴于用户输入,我不确定如何执行日历。

这就是我所拥有的。

#!/bin/bash  
echo -n "Enter the month you wish displayed: "; read month  
echo -n "Enter the year you wish displayed: "; read year  
echo cal '$month' '$year'  

1 个答案:

答案 0 :(得分:1)

当你使用echo时,行的其余部分(在shell可能的处理之后)输出到stdout(或者可能通过管道进入下一个进程)。这可以防止cal被视为命令。

'nix中使用了不同种类的引号:"双引号和'单引号。还有'反击。每个都有非常具体的用途。

由反引号包围的任何命令都是扩展内联 - 也就是说,它被执行并且输出被放入行中。因此,

echo hello `whoami`
如果您的用户名(对hello john命令的响应)为whoami

将导致john

单引号具有相反的效果:它“保护”来自shell的任何文本,因此不会进一步尝试处理。因此

echo hello '`whoami`'

将导致

hello '`whoami`'

双引号"的限制性稍差。 $(变量),\(转义)和`反引号仍然被解释,但它是一个将带有空格的参数传递给脚本的好方法。因此

doSomething for me

将两个参数传递给函数doSomethingforme。另一方面

doSomething "for me"

只传递一个参数for me

我希望这能为你澄清一些事情。