So beenden Sie eine Anwendung mit Yad

So beenden Sie eine Anwendung mit Yad

Ich möchte die Benachrichtigung in der Taskleiste von Yad verwenden, um eine Anwendung (z. B. VLC) zu beenden. Ich habe den folgenden Code verwendet:

yad --notification --no-middle --image=emblem-warning --menu='Cancel ! kill $pid' --text="My Tooltip" &

vlc & pid=${!}

Der Code gibt den folgenden Fehler aus:

kill: failed to parse argument: '$pid'

jede Hilfe ist willkommen

Antwort1

Laufenvlc Ersteum die PID $pidwie folgt korrekt in die Variable zu bekommen:

vlc & pid=${!}

Verwenden Sie dann doppelte Anführungszeichen "um den Parameter (nichtEinzelzitate'), um eine Parametererweiterung wie $pidfolgt zu ermöglichen:

yad --notification --no-middle --image=emblem-warning --menu="Cancel ! kill $pid" --text="My Tooltip" &

Antwort2

Das Ziel des Codes ist es, ffmpeg zu starten, um die Größe eines Videos zu ändern und es zu kodieren und es mit yad schließen zu können. Ich habe die Lösung gefunden, indem ich die PID des Prozesses in einer temporären Datei gespeichert habe. Ich habe lange versucht, einfache Anführungszeichen in bash -c 'command' zu verwenden. Ich habe es schließlich gelöst, indem ich einfache Anführungszeichen durch ersetzt habe '"'"'

export TMP="$(mktemp)"
yad --notification --no-middle  --command="" --image=emblem-warning --menu='Cancel current job ! bash -c "kill  $(cat $TMP); rm $TMP;"' & pid=$!
export fname="video.mp4"
bash -c 'echo $$>$TMP; exec ffmpeg -n -loglevel warning -i "$fname" -acodec copy -vcodec libx264 -crf 24 -vf "scale='"'"'if(gte(iw,ih),-1,720)'"'"':'"'"'if(gte(iw,ih),720,-1)'"'"'"  "${fname%%.*}_720.${fname##*.}"'
kill $pid

verwandte Informationen