Portál AbcLinuxu, 5. listopadu 2025 18:16
app v tomto souboru je na každém řádku aplikace a její argument.
Potřebuji skript, který projde všechny řádky a zkontroluje zda aplikace s příslušným parametrem běží.
Problém je v tom, že argument může obsahovat znaky jako $'".
Zde je příklad tohoto souboru:
PP_gio.sh serial2eth -a 192.168.100.180 -d /dev/can2eth -p 64549 -c CAN$ID00=419360256$ID01=419363863$ID02=419361024$ID03=419343905$ID04=419361280;' Variable_announce udp_listen.py -p 4455 -f gui_log.txt -tZde je můj pokus:
while read p_origin; do
p=$(echo $p_origin|sed -e 's/\r//g')
APP=$(echo "${p}")
AP_DIR=$(dirname "${APP}")
AP_AP=$(basename "${APP}")
echo "line: ${p_origin}"
RUNNING=$(ps -Af|grep -F "${p_origin}" |grep -v "grep" )
if [ -z "$RUNNING" ]; then
ERROR "${APP} not running"
else
INFO "${APP} running"
fi
done <$FILENAME
zde fungují všechny řádky kromě řádku s "serial2eth".
Máte někdo návrh jak to udělat?
Nejraděj bych se držel grepu. Ještě je pořeba říci, že skript chci nakonec nasadit na embedded zařízení kde je busybox - tedy omezené množství příkazů.
Pokud ale zkusím ručně:
serial2eth -a 192.168.100.180 -d /dev/can2eth -p 64549 -c CAN$ID00=419360256$ID01=419363863$ID02=419361024$ID03=419343905$ID04=419361280;'Pak dostanu správný výsledek, ve skriptu však nefunguje. Zkoušel jsem debug pomoci
set -x ale bohužel nemám potřebné vědomosti - přikládám do přílohy.
Děkuji za pomoc
grep -F "${p_origin}"
A v tom finálnom enviroment je interpret bash alebo sh?
$'.? Díky
-Af vůbec nezná. Navíc busybox umí přímo pgrep
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.