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

回复
阅读 1.2k
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
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏