Скрипт A:
#!/bin/bash
cmdname=$1
process_num=$(ps -e | grep $cmdname | wc -l)
timestamp=$(date +%s)
echo -e "$timestamp\t process_num=$process_num"
Скрипт B:
#!/bin/bash
cmdname=$1
process_num=$(ps -ef | grep $cmdname | wc -l)
timestamp=$(date +%s)
echo -e "$timestamp\t process_num=$process_num"
Предположим, что в системе есть только один указанный процесс. Результат выполнения сценария A равен 1, а результат выполнения сценария B равен 4. Я не знаю почему?
Это связано с тем, что он также учитывает процесс сценария, поскольку предположим, что вы проверяете процесс, который не запущен, например, скажем, Привет когда вы проверяете его через свой первый процесс, он даст 2, но когда вы запустите свой второй скрипт, он покажет счет как 4.
Вы можете проверить это, запустив свой второй скрипт первым и первый скрипт, после этого ваш первый скрипт также даст счет как 4