tsch: case 语句没有评估
tsch: case statement isn't evaluating
编辑:我最初认为我的变量不接受来自键盘的输入。我已更正我的问题以更准确地反映问题。
在下面的脚本中,case 语句没有计算。
我是 tcsh 的新手...我只想 input_line
接受字符 a
-d
作为键盘输入,我不确定是,并且 运行 switch 语句正确。
我正在阅读 Sobell 的 "A Practical Guide to Linux Commands, Editors, and Shell Programming." 我的语法 似乎 根据书中关于 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。
这一行:
set input_line = "$<"
工作正常。问题是 case
标签的语法错误。将 case of
更改为 case
,它应该可以工作。
(我很好奇你为什么认为 of
是必要的。()
编辑:我最初认为我的变量不接受来自键盘的输入。我已更正我的问题以更准确地反映问题。
在下面的脚本中,case 语句没有计算。
我是 tcsh 的新手...我只想 input_line
接受字符 a
-d
作为键盘输入,我不确定是,并且 运行 switch 语句正确。
我正在阅读 Sobell 的 "A Practical Guide to Linux Commands, Editors, and Shell Programming." 我的语法 似乎 根据书中关于 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。
这一行:
set input_line = "$<"
工作正常。问题是 case
标签的语法错误。将 case of
更改为 case
,它应该可以工作。
(我很好奇你为什么认为 of
是必要的。()