デバッグ中のスクリプトでファイルの先頭に$_を使用することがわかります。ファイルを呼び出す完全なコマンドを吸収するようです。しかし、このスクリプトを別のスクリプトの中にラップしようとすると、$_が何も吸収しないように見え、残りのスクリプトがクラッシュします。
後でスクリプトで$_を試してみましたが、以前に実行したコマンドを取得して再実行したり、最後のコマンドの出力を保存したりしたようです。
もしそうなら、最後に保存されたコマンドの結果を保存した場合、他のスクリプトが最初に$ _を使用しようとしたときにこのスクリプトを呼び出すとき、なぜ空ですか?
おそらく、実際の質問は、これらの他の動作を引き起こすスクリプトとコマンドライン間の環境の違いが何であるか、デバッグ中の添え字が書き込み可能ではないため、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. (+)