如何在tcsh脚本中回显命令?

20

是的,我知道我不应该用它来编写脚本。是的,它很糟糕。我确实很傻。

但是。

出于调试目的,我想要查看脚本执行的命令。我认为可以通过在Bash脚本中使用set -x或set -v来实现这个效果。

例如,如果脚本如下:

#!/bin/tcsh

echo "Hello"

然后当它运行时,我会看到

echo "Hello"
Hello

你是什么意思说“echo命令”?你可以使用类似于echo“这里是一个包含Unix命令名称--tar的文本字符串”的方式来回显任何文本。考虑编辑你的问题以显示任何输入、期望输出和你实现输出的一般想法。在tcsh中编写有用的代码是可能的,但人们强调它的原因(我也有经验),是因为tcsh在功能上更加有限,因此你可以创建的解决方案的规模和复杂性更加有限。祝好运。 - shellter
@John Lawrence Aspden,请分享一些关于您想要的具体例子。 - Ani
2个回答

34

在你的脚本顶部添加:

set echo 和/或 set verbose

这将打印出你的脚本中发生的每件事情,并且等同于bash命令set -xset -v


这是最合适的,因为此标志有助于调试EDA工具脚本。 - Mike

12
假设您的脚本名称为 tcsh_file, 假设该文件包括 Shebang。 现在在终端上运行以下命令:

tcsh -x tcsh_file

这将打印每一行代码并执行它。这基本上是一种交互式执行模式。这符合您的需求吗?

还有-v用于在历史替换后打印内容(尽管这些希望不会出现在脚本中,但可能是意外!),以及大写版本的-X-V,它们在源默认的.tcsh脚本之前开启相应的行为。我总是使用-f来禁止那种多次源导致的副作用。这些都来自手册页面。 - cfi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接