我对linux比较陌生,并且疯狂地试图利用bash,最终zsh。无论如何,目前这让我感到难过:
#!/bin/bash
history -s "a_string"
....不起作用。我已经尝试了十几种不同的想法,但没有任何削减它。 有任何想法吗?
答案 0 :(得分:2)
子shell不是交互式的,因此不保存历史或父shell不会重新加载历史记录。
解决此问题的典型方法:
使用别名而不是脚本
alias doit='history -s "a_string"'
unalias doit
使用shell函数而不是脚本
function doit() {
echo "A function is a lot like a script"
history -s "but operates in a subshell only when a bash command does (piping)"
}
unset doit
source
脚本,而不是在子shell中执行
source ./myscript.sh
. ./myscript.sh # equivalent shorthand for source
答案 1 :(得分:1)
$HISTFILE
和$HISTFILESIZE
。设置$HISTFILE
后,您可以根据需要阅读和编写历史记录。