Получены несколько процессов, сообщая о сигналах

Если все, что Вы хотите сделать, устраняют дополнительные два // в начале имени файла, и '' это странно обнаруживается в конце имени файла, которое можно использовать sed:

dir=$(gsettings get org.gnome.desktop.background picture-uri|sed -e 's/\/\/\//\//' -e "s/'//g; s/^/'/; s/$/'/")

Это заменит /// с / и удалите любые ошибочно отформатированные экземпляры или дубликаты '. Наконец, это добавит a ' вначале и конец строки для надлежащей инкапсуляции имени файла, если это имеет какие-либо пробелы. Это решение немного долго, но оно должно правильно сделать задание.

Я также повторю, какой упомянутый slm и говорят Вам это, когда я работал:

gsettings get org.gnome.desktop.background picture-uri

Я получил результат в формате:

'file:///usr/share/backgrounds/warty-final-ubuntu.png'
3
02.08.2014, 21:41
1 ответ

Терминал не знает о сигналах, посылаемых таким процессам, поэтому ничего не скажет. Но если ваша оболочка имеет управление заданием, она может сказать вам, когда заканчивается фоновое задание (например, из-за сигнала). Например, при использовании bash и zsh необходимо установить опцию notify, чтобы получить такой отчет немедленно (вместо того, чтобы ждать следующего запроса).

Вы также можете настроить ловушку SIGCHLD, которая будет выполняться при завершении фонового задания (но при этом вы не сможете получить информацию о завершенной работе с помощью ловушки).

В оболочках POSIX вы также можете использовать wait $pid, чтобы получить статус выхода некоторого PID $pid (который будет выдавать вам сигнал, с возможно ложными срабатываниями и ложноотрицательными, в зависимости от того, что делает процесс), с некоторыми ограничениями. Подробнее см. спецификацию wait.

0
27.01.2020, 21:43

Теги

Похожие вопросы