C Shell编程 - 用户输入和比较

时间:2011-04-11 12:51:20

标签: shell csh

对于熟悉小C shell编程的人来说,这是一个简单的问题

我发布了我程序的一些代码行

........
set gramma = $<
else if ($gramma == 's') then
echo " ta defterolepta pou menoun ine " secs_remain
else if ($gramma == 'm') then
@ min = $secs_remain % 60
@ secs = $secs_remain - ($min*60)
echo " o xronos pou meni ine " min " lepta ke " secs " defterolepta "
else if ($gramma == 'h') then
.........

我的问题是关于角色。正如您所看到的,我正在从键盘上读取一个角色。 在if命令中,我的角色是否需要''

或者我可以简单地写下角色吗?

例如

if ($gramma == 's') then

if ($gramma == s) then

我知道如果它是一个字符串,它将是

if ($gramma == "sexy") then

如果是数字

if ($gramma == 4) then

单个角色怎么样?

1 个答案:

答案 0 :(得分:1)

我认为你问的是,比较的右侧是否总是包含在单引号字符中? =='m'(右手边)

当然,答案取决于

单引号表示内部的任何变量值都不会扩展为已分配的值。如果您有变量值,请使用双引号字符引用它们。

如果您真的,真的,真的,确定您永远不会在右侧评估为多个值,那么您可以省略单个或双引号带有白色空间字符的'字'值。你真的需要引用(单或双)来避免白色空间字符的问题。

我认为编写有关shell编码的书籍的人们普遍认为,你总是希望用适当的引号包围字符串比较操作(==,!=,〜=)的左右两侧。 ,如果需要可变扩展,则为double,否则为single。