Як отримати запущений пліст для прямого запуску складної команди 1-го рядка bash?


13

У мене є дещо складна команда bash, яка включає деякі канали та пункт if-then-else, не кажучи вже про виклик системної програми (наприклад grep) з кількома параметрами.

Чи є спосіб створити пліст, який запустить безпосередньо та запустить цю складну команду? (На відміну від посилання на плист посилання файлу скриптів bash, що містить складну команду)

Спасибі.

Відповіді:


16

Так. Під час налаштування ProgramArgumentsелемента, просто використовувати в bashякості першого аргументу, в -cякості другого аргументу, то [your commands](нагадаємо , замінити всі XML - об'єкти, такі як >, &і так далі) в якості третьої, наприклад , так:

<key>ProgramArguments</key>
<array>
        <string>/bin/bash</string>
        <string>-c</string>
        <string>ls -1 | grep *.txt | echo &gt; allTextFiles</string>
</array>

Замініть третій елемент масиву фактичною командою.


1
Я не перевіряв, але я впевнений , що ви не хочете лапки рядка команди, але що вам потрібно HTML-суті закодувати його (наприклад , використання &gt;і &lt;замість того , щоб >і <для перенаправлень).
Гордон Девіссон

@Gordon Davisson - ви, безумовно, маєте рацію щодо цитат - вони служать тій самій цілі, що і зробити її одним елементом масиву. Я майже впевнений, що ви маєте рацію щодо сутності XML. Хороший улов. Я відповідно відредагував свою відповідь.
Скотт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.