在下面的脚本中,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。
答案 0 :(得分:1)
这一行:
set input_line = "$<"
工作正常。问题是你有case
标签的语法错误。将case of
更改为case
,它应该有效。
(我很好奇为什么你认为of
是必要的。()