Что двойной дефис выполняет 'lxc в должностном лице'

Некоторые учебные руководства (такие как Начало работы на linuxcontainers.org) рекомендуют использование двойного дефиса (--) при использовании lxc exec запускать программу в контейнере LXD, как в

$ lxc exec my-container -- apt update

Я подозреваю -- говорит lxc exec передать предоставленный флаги программе, потому что, например. lxc exec my-container apt list --upgradable сбои с

error: flag provided but not defined: --upgradable

Однако я не могу найти документацию относительно проблемы. Кто-то может подтвердить или разъясниться, точно ли это не, что это делает?

Кроме того, я видел экземпляры, где люди используют -- в различных местах, например:

$ lxc exec my-container apt -- list --upgradable
$ lxc exec my-container apt list -- --upgradable

Какая разница?

3
задан 9 May 2017 в 10:11

1 ответ

Частично это - дубликат того, что действительно удваивает среднего тире.

Вы задаете интересный вопрос о lxc таким образом позвольте мне ответить на это. В Ваших двух примерах, обоих экземплярах -- сказать lxc не интерпретировать опции после той точки. Другое расположение в этом случае не важно. Однако, потому что Вы выполняете командную строку в контейнере, Вы могли бы хотеть использовать -- как часть той командной строки. Рассмотрите следующее: Я создал файл /tmp/bar содержа строку --foo. Следующие команды были выполнены в контейнере:

root@myContainer:~# echo "here is --foo" >/tmp/bar
root@myContainer:~# echo "this line has no double dash" >> /tmp/bar
root@myContainer:~# cat /tmp/bar
here is --foo
this line has no double dash
root@myContainer:~# exit

Теперь я собираюсь искать то использование grep. Я должен позволить grep знайте что -- часть шаблона поиска, не опция к grep:

$ lxc exec myContainer -- grep -- --foo /tmp/bar
here is --foo

Если я использую сингл -- это используется lxc командная строка и я получаем ошибку:

$ lxc exec myContainer grep -- --foo /tmp/bar
grep: unrecognized option '--foo'
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
4
ответ дан 1 December 2019 в 15:51

Другие вопросы по тегам:

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