"Set echo" 似乎没有在 tcsh 脚本中显示代码

"Set echo" doesn't seem to show code in tcsh script

请不要在“您为什么使用 TCSH?”的领域中做任何事情。我有我的理由。

我正在尝试调试 tcsh 脚本,但使用选项“set echo”和“set verbose”实际上似乎并没有显示我正在尝试调试的代码。

根据 this question,我在 tcsh 中尝试了“set echo”和“set verbose”。然后我 运行 这个脚本 'test.tcsh':

echo "Hello world"
foo=1
bar=2
foobar=$(expr $foo + $bar)
echo $foobar

它returns输出如下:

test.tcsh
test.tcsh
Hello world
3
history -S
history -M

所以它清楚地显示了代码的输出。但是,我想看到的是代码本身 - echo、对 expr 的调用等等。在 bash 中,set -xv 会做我想做的事,但它似乎在这里不起作用。

有什么我想念的吗?

要确保您的脚本是 运行 由 tcsh shell 并让它显示代码,只需将以下行添加为脚本的第一行:

#!/bin/tcsh -v

这将使您的脚本 运行 通过 tcsh shell 并设置 tcsh shell 以回显每个脚本命令。

作为参考,您在问题中的实际脚本似乎不是 tcsh 脚本,请参阅您问题下的评论。

编辑: 要在不更改脚本的情况下进行调试,您还可以简单地启动 tcsh shell 并在 -v 参数后跟脚本文件名:

$ /bin/tcsh -v test.tcsh