почему xargs не является парсингом моего входа правильно?

Несколько вне темы я предполагаю, но я все еще думаю, что это полезно.

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

2
18.07.2018, 02:42
1 ответ

xargs работает, как предназначено; каждая строка проводится в качестве параметра. Если Вы хотите несколько параметров, разделяете их с новыми строками.

{echo "$title"; echo "$artist"; echo "$album"} | xargs notify-send

Тем не менее Вы делаете слишком много работы для чего-то довольно простого:

title="$(echo "$info" | sed -n 's/^tag title //p')"
artist="$(echo "$info" | sed -n 's/^tag artist //p')"
album="$(echo "$info" | sed -n 's/^tag album //p')"
notify-send "$title" "$artist" "$album"

(Также отметьте еще один глюк: notify-osd отправляет сообщения, это прошло через Pango, таким образом, необходимо выйти из чего-либо, что могло бы быть принято за разметку Pango. Это означает <, >, и & на практике, как с HTML и XML. Вышеупомянутое не пытается обработать это.)

4
27.01.2020, 22:01
  • 1
    у меня может только быть два аргумента. Первым является "заголовок", и второй является остальная часть информации. Однако по некоторым причинам, когда я действительно говорю: notify-send "$title" "$artist" уведомление только показывает $title а не $artist –  Dennis 18.06.2011, 05:30
  • 2
    @Dennis: затем я проверил бы на встроенные новые строки или возвраты каретки. Можно также объединить художника и альбом при оставлении заголовка отдельным; и, не все это широко известное, notify-send Pango использования, таким образом, необходимо выйти из любой разметки Pango в строках (как HTML, необходимо не упустить <, >, и &). –  geekosaur 18.06.2011, 05:34
  • 3
    прокрутил их tr -d '\n' но никакая удача А-ч –  Dennis 18.06.2011, 05:48
  • 4
    Вы были правы. Это был Pango. Я попробовал его без и и это зафиксировало его. Существует ли способ, которым я мог передать аргумент через и сохранить амперсанд? Между прочим огромное спасибо. –  Dennis 18.06.2011, 05:52
  • 5
    То же как с HTML: замена < с &lt;, > с &gt;, и & с &amp;. –  geekosaur 18.06.2011, 06:01

Теги

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