Добавьте аргументы для 'избиения-c'

fuse группа предназначается для указания, кто может смонтировать файловые системы FUSE. Намерение не состоит в том, что любой в той группе может размонтировать файловые системы, смонтированные другими. Только пользователь, делающий монтирование или корень, может размонтировать файловую систему.

Можно использовать sudo для авторизации пользователей в fuse группа для выполнения команды размонтирования как того же пользователя, который сделал монтирование. Выполненный visudo добавить строку как:

%fuse ALL = (fuse) fusermount -u /media/Android

Почему Вы не делающий монтирование как сами? Это - обычный способ использовать FUSE.

22
18.11.2018, 07:29
2 ответа
[

] Вы неправильно интерпретируете man-страницу. Во-первых, часть о []--[] сигнализации конца опций не имеет отношения к тому, что вы пытаетесь сделать. С этого момента []-c[] переопределяет оставшуюся часть командной строки, так что она больше не будет проходить через обработку опций bash, что означает, что []--[] будет передано команде, а не обработано bash как маркер конца опций.[

] [

]Вторая ошибка заключается в том, что дополнительные аргументы присваиваются в качестве параметров позиционирования запущенному процессу оболочки, а не передаются в качестве аргументов команде. Таким образом, то, что вы пытаетесь сделать, может быть сделано как одно из:[

] [
/bin/bash -c 'echo "$0" "$1"' foo bar
/bin/bash -c 'echo "$@"' bash foo bar
] [

]В первом случае, передача параметров []$0[] и []$1[] явно, а во втором случае, использование [] "$@"[] для расширения как обычно, как "все позиционные параметры, кроме $0". Обратите внимание, что в этом случае мы должны передать что-то для использования в качестве []$0[]; я выбрал "bash", так как это то, что []$0[] было бы нормально, но все остальное сработало бы.[

] [

]Что касается причины, по которой это делается таким образом, вместо того, чтобы просто передавать любые аргументы, которые вы даете непосредственно команде, которую вы перечисляете: обратите внимание, что в документации сказано, что "команда[]s[] считывается со строки", множественное число. Другими словами, эта схема позволяет делать:[

] [
/bin/bash -c 'mkdir "$1"; cd "$1"; touch "$2"' bash dir file
] [

]Но обратите внимание, что лучшим способом достижения первоначальной цели может быть использование []env[], а не []bash[]:[

] [
/usr/bin/env -- "ls" "-l"
] [

]Если вам не нужна ни одна из возможностей, предоставляемых оболочкой, то нет причин использовать ее - использование []env[] в этом случае будет более быстрым, простым и менее печатающим. И вам не нужно так сильно думать, чтобы быть уверенным в том, что он будет безопасно обрабатывать имена файлов, содержащих метасимволы оболочки или пробельные символы.[

].
33
27.01.2020, 19:42

Я не уверен, в чем заключается ваша цель, но если вы просто пытаетесь построить машину Rube Goldberg - "штуковину, изобретение, устройство или аппарат, который преднамеренно перепроектирован или переделан для выполнения очень простой задачи очень сложным способом" - тогда попробуйте

sh -c 'ls $0' -l

или

sh -c 'ls $1' supercalifragilisticexpialidocious -l

или даже

sh -c 'ls -$0' l

Вы должны быть в состоянии понять, как это работает, из ответа Godlygeek.

3
27.01.2020, 19:42

Теги

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