/ /コマンドがファイルから来たときに、 'history'がtcshで何も出力しないのはなぜですか? -シェル、tcsh

コマンドがファイルから来たときに 'history'がtcshに何も出力しないのはなぜですか? - シェル、tcsh

tcshで「history」と入力すると、次のような履歴コマンドのリストが表示されます。

ubuntu:~> echo a
a
ubuntu:~> history
1  9:20    echo a
2  9:20    history

ただし、コマンドをファイル「commands.txt」に保存する場合

echo a
history

そして、このファイルのコンテンツをtcshにリダイレクトします

tcsh < commands.txt

私たちが見ることができるのはただ:

a

なぜこれが起こるのですか?そして、なぜシェルプロンプトが出力の一部でもないのですか?

ところで、それは実際にbashで動作します、あなたはただオンにする必要があります 歴史 このようなオプション

set -o history
echo a
history

回答:

回答№1は0

まあこれは質問に対する完璧な答えではないかもしれません なぜ。ただし、少なくとも、スクリプトでhistoryコマンドを使用しないという情報を提供します。

http://www.tldp.org/LDP/abs/html/special-chars.html 見つけた「履歴」を検索:

スクリプト内では、履歴メカニズムが無効になっていることに注意してください。

http://tldp.org/LDP/abs/html/histcommands.html ページの最後にあります:

Unfortunately, the Bash history tools find no use in scripting.

#!/bin/bash
# history.sh
# A (vain) attempt to use the "history" command in a script.

history                      # No output.

var=$(history); echo "$var"  # $var is empty.

# History commands disabled within a script.

bash$ ./history.sh (no output)

回答№2の場合は0

歴史 コマンドはtcshに組み込まれているため、通常のコマンドのように動作しません。

多くの合理的な方法で[ビルトイン]をまとめることはできません。

そして、その 合理的な 方法。また、スクリプトはコマンドプロンプトを出力しません。