Коли ми вводимо "історію" в tcsh, ми можемо побачити список команд історії, як це:
ubuntu:~> echo a
a
ubuntu:~> history
1 9:20 echo a
2 9:20 history
Однак, якщо ми зберігаємо в командах у файлі "commands.txt"
echo a
history
І ми перенаправляємо вміст цього файлу в tcsh by
tcsh < commands.txt
Що ми бачимо лише:
a
Чому це відбувається? І чому командний рядок не є частиною виходу або?
До речі, це насправді працює для bash, вам просто потрібно ввімкнути історія варіант, як це
set -o history
echo a
history
Відповіді:
0 для відповіді № 1добре, можливо, не ідеальна відповідь на питання чому. але принаймні це дає вам певну інформацію, яка не використовує команду історії в сценарії.
в 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)
0 для відповіді № 2
The історія команда є вбудованою tcsh, тому не веде себе як звичайна команда.За "Csh-програмування вважається шкідливим", розділ 2a говорить
Ви не можете поставити [in-ins] разом у багатьох розумних шляхах.
І я не впевнений, що це навіть а розумний шлях І скрипти не друкують командні вказівки.