tsch:案例陈述没有评估

时间:2016-07-10 23:31:28

标签: shell tcsh

编辑:我原本以为我的变量不接受键盘的输入。我已经纠正了我的问题,以便更准确地反映这个问题。

在下面的脚本中,case语句没有评估。

我对tcsh很陌生......我只是希望input_line接受来自键盘的字符a - d,我不是确定它是,并正确运行switch语句。

我正在阅读Sobell" Linux命令,编辑器和Shell编程实用指南。"根据本书关于tcsh的第9章,我的语法似乎正确,但是,此时,我不知道我做错了什么。

搜索SO并没有产生类似的问题,所以这对许多人来说是显而易见的,或者还没有人问过。

可以再看一次经验并指出我的错误吗?

#!/bin/tcsh 
# menu interface to simple commands 
set input_line = ''
echo "\n        COMMAND MENU\n"
echo " a. Current date and time"
echo " b. Users currently logged in"
echo " c. Name of the working directory"
echo " d. Contents of the working directory\n"
echo -n "Enter a, b, c, or d: "
set input_line = "$<"
# 
switch ($input_line)
    case of [aA*]:
            date
            breaksw
    case of [bB*]:
            who
            breaksw
    case of [cC*]:
            pwd
            breaksw
    case of [dD*]:
            ls
            breaksw
    default:
            echo "There is no selection: $input_line"
            breaksw
ends

为了清楚起见,我可以获得一个脚本,它在bash中执行完全相同的操作,但是我专注于tcsh。

1 个答案:

答案 0 :(得分:1)

这一行:

set input_line = "$<"

工作正常。问题是你有case标签的语法错误。将case of更改为case,它应该有效。

(我很好奇为什么你认为of是必要的。()