kro*_*omy 3 bash shell autostart
我正在尝试使用 linux 命令“script”设置一个小 shell 脚本来记录我的 Kali Linux 机器上的每个输入。
#!/bin/bash
now=$(date +"%m_%d_%Y_%H:%M:%S")
script /root/Logs/log_$now.txt
Run Code Online (Sandbox Code Playgroud)
该脚本本身似乎可以工作,但我想将其添加到 bash 自动启动中,因此每当我打开终端时,我的 shellscript 就会被执行。
我尝试将其添加到我的 .bashrc 文件中,但是当我现在打开终端时,脚本会循环。我添加了一个简单的“echo 'test'”脚本,它仅在终端启动时启动一次。将脚本添加到我的 .profile 文件并手动执行 .profile 按预期工作,但是一旦我使用“script”命令输入我的 .bashrc 脚本,它就会循环。
先感谢您。
新的终端窗口是启动新的交互式 shell 的一种方式,运行script. 您只想script在第一种情况下运行,而不是在每种情况下都运行。
script它本身在环境中设置一个变量,让您知道您是否已经在由 启动的 shell 中script。在尝试再次运行之前检查该变量script。
if [[ -z $SCRIPT ]]; then
now=$(date +"%m_%d_%Y_%H:%M:%S")
script /root/Logs/log_$now.txt
fi
Run Code Online (Sandbox Code Playgroud)
如果设置的话,的值SCRIPT是正在记录的文件的名称。
或者,您可以将终端模拟器配置为script直接运行,而不是让它继续打开普通的交互式 shell,然后您尝试更改其配置。
以上适用于 BSD script;对于 GNU script,您必须自己设置这样的变量。
if [[ -z $SCRIPT ]]; then
now=$(date +"%m_%d_%Y_%H:%M:%S")
export SCRIPT=/root/Logs/log_$now.txt
script "$SCRIPT"
fi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1309 次 |
| 最近记录: |