我正在尝试将这个运行 python 脚本的批处理文件转换为 bash 脚本。我需要帮助将批处理文件中等待操作完成的等待函数转换为 bash。
script.py wait-for-job <actionID>
是等待特定 Action 完成的实际调用。 wait 函数基本上是将日志文件中的一个值赋给一个变量,然后将该变量作为参数传递给 python 脚本 (script.py)。
日志文件在每个操作后连续写入,最后一行(从中获取操作 ID)看起来像这样: ojit_代码
批处理文件中的等待函数如下:
:wait
@echo off
for /f "tokens=11" %%i in (C:\Users\DemoUser\Dir\file.log) do ^
set ID=%%i
@echo on
script.py wait-for-job --action-id %ID%
EXIT /B 0
我尝试在 bash 中实现相同的功能,如下所示,但它似乎不起作用(我是 shell 脚本的新手,我确信这一切都是错误的):
for $a in (tail -n1 /home/DemoUser/Dir/file.log); do
ID=$($a | awk { print $12})
script.py wait-for-job --action-id $ID
done
最佳答案
下面读取文件的每一行并拉出ID并用它来调用一个py脚本。首先我们声明路径和变量。然后我们运行一个循环。
#!/bin/bash
typeset file=/home/DemoUser/Dir/file.log
typeset py_script=/path/to/script.py
readonly PY=/path/to/python
while IFS= read -r line ;do
${PY} ${py_script} wait-for-job --action-id $(${line} | awk { print $12})
done < "${file}"
关于linux - 将批处理文件函数转换为 bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58208496/