使用自动更新的 Notepad++ 文件自动运行 Linux 可执行文件

使用自动更新的 Notepad++ 文件自动运行 Linux 可执行文件

我目前正在 WSL 中使用一个代码,该代码通过 WSL 窗口中的可执行文件模拟某些内容。要编辑此可执行文件的参数(即我希望模拟运行多长时间),我使用 Notepad++。我目前有兴趣为几百张这种模拟图像创建一个动态 gif,显然不用说,每次可执行文件完成时手动编辑 Notepad++ 代码(时间参数、创建/命名用于保存模拟文件的新目录等)将非常耗时。

所以我想知道是否有方法可以自动化这个?我想方法应该是这样的:

  1. 当可执行文件完成后,它会使用更新的 Notepad++ 文件自动再次运行。
  2. 然后,Notepad++ 文件必须知道要更新哪些参数、要增加多少时间步长、如何重命名新目录(可能通过一些“++”)。

我假设没有办法真正链接这些过程,所以也许在 Notepad++ 文件更新时还需要有时间延迟,以便有足够的时间让 WSL 可执行文件完成,然后再次进行此过程?

答案1

最终,这将需要某种程度的脚本/编程。如果我完全弄错了,请原谅我,但听起来你似乎没有太多的编程经验。

从高层次来看,该脚本可能会:

  • 以某种循环方式操作for,重复“x”次(您提到“几百次”)。
  • 为输出创建目录
  • 每次运行修改或创建配置文件
  • 使用该配置文件运行模拟

我假设每次运行的参数都会遵循某种数学模式,可以根据运行的“次数”计算出来?例如,也许:

  • 每次运行一个参数增加 3
  • 另一个参数每运行 3 次才会增加
  • 最后一个参数在 0,1,2 (mod 3) 之间循环

那么你的脚本可能看起来像这样:

#!/usr/bin/env bash
# Starting values for first run
SIM_ARGX_START=1757
SIM_ARGY_START=8
for ((sim_num=0 ; sim_num < 200 ; sim_num++ ))
do
  mkdir "sim${sim_num}"
  SIM_ARGX=$(( $SIM_ARGX_START + ($sim_num * 3) ))
  SIM_ARGY=$(( $SIM_ARGY_START + ($sim_num / 3) ))
  SIM_ARGZ=$(( $sim_num % 3 ))
  cat << EOF > "sim${sim_num}/config"
[simparams]
ARGX=$SIM_ARGX
ARGY=$SIM_ARGY
ARGZ=$SIM_ARGZ
OUTPUT=sim${sim_num}/
other paramaters ...
EOF
  simprogram --config "sim${sim_num}/config"

done

这会将一个假设的配置文件写入 200 个不同的目录中,sim0并针对它sim199运行simprogram

当然,我不知道您的特定模拟需要什么参数或配置文件,所以这些都是假设的。

脚本或程序实际上可以用任何编程语言编写。只是 shell 脚本非常擅长自动化这类事情。但是,如果你 (a) 没有编程背景并且 (b) 正在运行模拟(尽管未指定),那么我建议你最好学习 Python,因为它经常用于数学和科学。

相关内容