linux bashrc prompt重复执行问题

justlearnm0re
  • 4
新手上路,请多包涵

想要用prompt记录每次用户登陆bash执行的命令,但是默认每次打开新的标签页或ssh每次远程登陆都会打开bash从而触发bashrc,这样就会造成在每次登陆时的重复命令记录,有dalao能解决这个问题吗,prompt命令如下:
PROMPT_COMMAND='echo "$(date +%s)][$(whoami)[$$]$(fc -lnr -1 | sed "s/^s*//")" >> /var/log/test.log

回复
阅读 1k
1 个回答
justlearnm0re
  • 4
新手上路,请多包涵

这边应该是已经解决了,设置一个环境变量记录是否是初次打开bash的状态,orz太菜了,shell写的少,这边dalao们如果有什么其他思路也可以交流,开阔一下思路

export FIRST=1
function my_history(){
    if [ "$FIRST" = 0 ];then
        echo "[$(date +%s)][$(whoami)][$(pwd)][$(echo $SSH_CONNECTION)][$(tty)][$$]$(fc -lnr -1 | sed "s/^\s*//")" >> /var/log/test.log
    else
        export FIRST=0
    fi

}
export PROMPT_COMMAND=my_history
宣传栏