tcsh 中的美元下划线是什么意思? $_

tcsh 中的美元下划线是什么意思? $_

在我正在调试的脚本中,我看到它在文件开头使用 $_ 。它似乎吸收了调用该文件的完整命令。但是,当尝试将此脚本包装在另一个脚本中时, $_ 似乎根本没有吸收任何内容,从而导致脚本的其余部分崩溃。

我稍后在脚本中尝试使用 $_ ,它似乎采用了之前执行的命令,然后重新运行它或仅保存最后一个命令的输出。

那么,如果它保存的是最后保存的命令的结果,为什么当另一个脚本调用该脚本试图在开头使用 $_ 时它是空的?

也许真正的问题是脚本和命令行之间的环境有何不同,这会导致这种不同的行为,以及由于我正在调试的下标不可写,因此 WA 或解决方案是什么。

下面的代码还显示了一些奇怪的地方,如果 echo $_ 位于脚本的第一行,它会拉取该 cmd 行上之前运行的 cmd,但是如果再次使用 echo $_,它总是输出用于调用的 cmd剧本。

测试:

echo $_
echo $_
echo $_

命令行:

>echo "foo"
foo
>echo "bar"
bar
>source ./test
echo "bar"
source ./test
source ./test

答案1

男人tcsh:

   $_      Substitutes the command line of the last command executed.  (+)

相关内容