我有一个想要在打开终端时运行的脚本。这将使用Gedcom
命令来记录终端会话,以在完成某些软件工作后帮助对系统进行故障排除。当我将脚本放在.bash.d中并打开终端时,它陷入了反复启动脚本的循环中。
脚本-a -f〜/ user_data / error_logs / terminal_output / typescript。$(主机名)。$(日期-I).txt
答案 0 :(得分:1)
我从未使用过bash.d
。但是我将要运行的命令放在终端的开头,或者更具体地说,将bash放在~/.bash_profile
中,它的工作原理就像魅力。
您必须关闭bash会话并为您在~/.bash_profile
中输入的命令启动一个新的会话才能生效,因为~/.bash_profile
中的命令仅在bash会话启动时才执行。另外,将命令放入~/.bash_profile
后,可以运行source ~/.bash_profile
使命令生效。
答案 1 :(得分:1)
我可以通过将以下内容放入.bashrc
来修复该问题test "$(ps -ocommand= -p $PPID | awk '{print $1}')" == 'script' || (/data/file_upload/term_log.sh)
term_log.sh的内容为:
script -a -f -q ~/user_data/error_logs/terminal_output/typescript.txt
kill -9 $PPID
我添加了kill -9 $ PPID,以便当用户键入exit时它将关闭终端,而不仅仅是退出脚本。