在我正在调试的脚本中,我看到它在文件开头使用 $_ 。它似乎吸收了调用该文件的完整命令。但是,当尝试将此脚本包装在另一个脚本中时, $_ 似乎根本没有吸收任何内容,从而导致脚本的其余部分崩溃。
我稍后在脚本中尝试使用 $_ ,它似乎采用了之前执行的命令,然后重新运行它或仅保存最后一个命令的输出。
那么,如果它保存的是最后保存的命令的结果,为什么当另一个脚本调用该脚本试图在开头使用 $_ 时它是空的?
也许真正的问题是脚本和命令行之间的环境有何不同,这会导致这种不同的行为,以及由于我正在调试的下标不可写,因此 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. (+)