Вы можете использовать функцию с 2 -аргументами-несколько раз:
$ cat scriptname
#!/bin/bash
echo $1 $2 $3 $4 | awk '
function min(a, b) {
return a < b ? a: b
}
{
print min(min(min($1,$2),$3),$4)
}'
тогда например
$./scriptname 3 1.2 -0.4 77
-0.4
Если вам необходимо записать ее как функцию с 4 -аргументами, я бы предложил что-то вроде
function min(a, b) {
return a < b ? a : b
}
function min4(a,b,c,d) {
return min(min(min(a,b),c),d)
}
{
print min4($1,$2,$3,$4)
}
Во-первых, убедитесь, что нет более простого способа получить нужную информацию, существует множество других инструментов, которые могут работать лучше, а htop плохо работает с файлами. См. :https://stackoverflow.com/questions/17534591/htop-output-to-human-readable-file, хотя здесь есть кладж :https://askubuntu.com/questions/726333/how-to-save-htop-output-to-file, если вы не можете что-то найти.
Что такого в htop, что вы не можете получить из ps
или некоторых других инструментов, предназначенных для вывода и разбора командной строки?
Затем напишите примерно такой скрипт (untested):
#!/bin/bash
my_log="ftp_$(date +%Y%m%d%H%M%S).log"
$(command to start the ftp 2>&1 > "$my_log")&
my_pid="$!"
sleep 15
still_there=1
while [[ $still_there -gt 0 ]]
do
if [[ $(ps ax | grep $my_pid | grep -v grep) ]] # If your PID is still in the process table
then
# Insert monitoring stuff in here that > to $my_log
still_there=1
else
still_there=0
fi
sleep 1
done