У меня есть две машины Unix, работающие под управлением AIX 5.3
My $ HOME смонтирован на machine1.
Использование NFS, login machine2 перейдет к тому же $ HOMEстранное поведение команды fc -l
Сначала я вхожу в систему machine2, затем машина1.
Оба использования telnet.
2 сеанса будут иметь один и тот же файл .sh_history.
Я узнал, что поведение fc -l очень странное.
В machine2, я выдавать команды в Telnet:
fc -l
ksh fc -l
оба дают тот же результат.
В machine1,
fc -l
ksh fc -l
дают разные результаты
Результат для ksh fc -l
такая же, как /usr/bin/fc -l
Кроме того, когда я бегу сценарий как это:
#!/usr/bin/ksh
fc -l
Результат такой же, как /usr/bin/fc -l
Может ли кто-нибудь сказать мне, что случилось?
Alvin ССО
Я уверен, что я бегу Ksh. Я уверен, что $ HISTFILE не установлен. Поскольку/etc/profile вызывает скрипт, который использует функцию, это делает ksh для записи в файл истории команд .sh_history. Мой .profile не может перезаписывать историю команд с использованием переменных HISTFILE. Итак, я просто не устанавливаю HISTFILE. Поэтому вывод может быть связан с историей памяти. Есть ли способ заставить мой логин ksh не использовать историю в памяти? –
@Alvin: Я думаю, что ksh немедленно записывает в файл истории (это только проблема с Bash). Только интерактивные оболочки (обычно) записывают в файл истории - скриптов обычно нет. Что именно вы видите, и что вы пытаетесь сделать? Что вы имеете в виду, когда говорите, что скрипт, который использует функции, вызывает ksh для записи в файл истории при вызове из '/ etc/profile'? Я не вижу этого поведения. –
Я имею в виду, что перед вызовом/определением функции мы должны установить $ HISTFILE. Поскольку/etc/profile вызывает вызов какого-либо скрипта, который определяет функцию, это делает/etc/profile для использования .sh_history для моей оболочки входа. Я не могу использовать $ HISTFILE для переопределения файла истории команд в моем .profile. ---------- Для чего именно я вижу? На самом деле, fc -l будет иметь число перед каждой командой. Fc -l дает число 3xx. Параметр/usr/bin/fc -l дает число 1xx. Вот почему я также подозреваю, что история в памяти еще не написана .sh_history –