Я удивлен, что никто не предложил использовать массивы. Вот моя грубая попытка (с использованием идеи log3.txt
от @Stephane выше.
#!/bin/bash
nl1=$( wc -l < log1.txt )
nl2=$( wc -l < log2.txt )
nlnums=$( wc -l < nums.txt )
declare -a arr1[$nl1]
declare -a arr2[$nl2]
declare -a nums[$nlnums]
for (( i=0; i < $nl1; i++ ))
do
read arr1[$i]
done < log1.txt
for (( i=0; i < $nl2; i++ ))
do
read arr2[$i]
done < log2.txt
for (( i=0; i < $nlnums; i++ ))
do
read nums[$i]
done < nums.txt
j=0
for (( i=0; i < $nl1; i++ ))
do
echo "The ${nums[$i]} color ${arr1[$i]} is ${arr2[$j]}"
j=$(( (j+1) % $nl2 ))
done
Файл nums.txt
выглядит следующим образом:
first
second
third
fourth
fifth
sixth
seventh
eighth
ninth
tenth
Код нужно немного почистить, но он иллюстрирует суть.
нашел ответ.
Проблема заключалась в том, чтобы внедрить сервис в системную область.
Было обнаружено, что qtbus
обменивается данными в области пользователя.
Таким образом, если служба создается в области пользователя systemd
, можно подтвердить, что она работает нормально без подключения к службе dbus
.