Portál AbcLinuxu, 6. května 2025 06:25
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 <$FILENAMEzde 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.