Bash 一次执行二进制文件的脚本
Bash script to execute a binary file for a time
我有两个二进制文件,我想一个接一个地执行,问题是我想同时执行一分钟。我有以下 bash 代码:
./file_1
./file_2
但我不知道如何只 运行 一分钟。
这是一个可移植的解决方案 - 运行 后台的二进制文件,一分钟后将其杀死:
for file in "file_1" "file_2"; do
"./$file" &
file_pid=$!
sleep 60
kill "$file_pid"
done
&
操作符启动一个后台作业,特殊变量$!
包含最后一个作业的PID。循环是可选的。我们可以用它来减少重复代码。
这是使用 timeout 命令的单行代码
$ timeout 60 binary-1; timeout 60 binary-2
在本例中,格式为:
timeout duration command
其中持续时间默认为秒,或者也可以使用 1m(1 分钟),来自 man:
duration is a floating point number followed by an optional unit:
‘s’ for seconds (the default)
‘m’ for minutes
‘h’ for hours
‘d’ for days
我有两个二进制文件,我想一个接一个地执行,问题是我想同时执行一分钟。我有以下 bash 代码:
./file_1
./file_2
但我不知道如何只 运行 一分钟。
这是一个可移植的解决方案 - 运行 后台的二进制文件,一分钟后将其杀死:
for file in "file_1" "file_2"; do
"./$file" &
file_pid=$!
sleep 60
kill "$file_pid"
done
&
操作符启动一个后台作业,特殊变量$!
包含最后一个作业的PID。循环是可选的。我们可以用它来减少重复代码。
这是使用 timeout 命令的单行代码
$ timeout 60 binary-1; timeout 60 binary-2
在本例中,格式为:
timeout duration command
其中持续时间默认为秒,或者也可以使用 1m(1 分钟),来自 man:
duration is a floating point number followed by an optional unit:
‘s’ for seconds (the default)
‘m’ for minutes
‘h’ for hours
‘d’ for days