Рейтинг:-3

это хорошая идея использовать «sudo bash -c» вместо «sudo» навсегда?

флаг kz
tmp

Во-первых, речь идет только об ОС Debian/Ubuntu.

Во-вторых, мы говорим о пользователе без полномочий root только с привилегиями sudo.



Итак, вопрос в том,

Есть ли повод, который нельзя использовать sudo bash -c 'команда' но только команда судо ?

это хорошая идея использовать судо баш -с вместо судо навсегда?

флаг hr
Я голосую за то, чтобы закрыть этот вопрос, потому что его задавали на нескольких сайтах: [можно ли навсегда использовать «sudo bash -c» вместо «sudo»?](https:/ /unix.stackexchange.com/questions/666213/это-это-хорошая-идея-использовать-sudo-bash-c-вместо-sudo-навсегда)
tmp avatar
флаг kz
tmp
@steeldriver Прошу прощения, я здесь новичок, я был так сбит с толку тем, к какому сайту должны были относиться мои вопросы, мне всегда так сложно сделать правильный выбор. но похоже, что я только что получил "ответ".
guiverc avatar
флаг cn
Также обратите внимание, что это сайт Ubuntu, для Ubuntu и *официальных* разновидностей Ubuntu (например, https://ubuntu.com/download/flavours), поэтому использование Debian отвлекло вас от темы для этого сайта. Многие из нас могут *любить* и *использовать* Debian, но вы должны соблюдать правила сайта (возможно, вы заходите на этот сайт, используя SSO/signon Ubuntu, но это сайт Stack Exchange, поэтому вопросы не следует задавать на других сайтах SE). )
Рейтинг:1
флаг cw

Если вы не используете бить, тогда баш -с запускает команду с бить, и команда судо запускает команду с вашей оболочкой.

Если вы используете бить, тогда баш -с создает очередной удар чтобы вы могли запустить свой скрипт, что может вызвать проблемы с переменными.

Попробуйте этот пример

С=2
эхо $S
bash -c эхо $S

Вы получите другой результат!

tmp avatar
флаг kz
tmp
Спасибо за хороший пример, просто напомнил мне о кавычках, мы обычно используем ```bash -c "echo $S" ``` с кавычками, и в этом случае я действительно получаю тот же результат. также.
Shu Shang avatar
флаг cw
Что ж, неиспользование версии bash -c не принесет вам никакого вреда и не доставит вам проблем с цитированием, что, если вы забудете, может привести к катастрофе.
bac0n avatar
флаг cn
@ShuShang не уверен, что вы пытаетесь описать, «-c» принимает «командную строку», и любые следующие аргументы будут назначены в качестве позиционных параметров, начиная с «$ 0», в этом случае «$ S» станет «$ 0». `, который используется в качестве имени скрипта, например, `bash -c nonexistent $S` даст вам `2: строка 1: несуществующая: команда не найдена`.
bac0n avatar
флаг cn
@tmp в большинстве случаев следует использовать одинарные кавычки, иначе `$S` будет расширен текущей оболочкой до того, как `bash -c` интерпретирует командную строку. Общая конструкция может выглядеть примерно так: `bash -c 'echo "$@"' my-bash 1 2 3 4`.
tmp avatar
флаг kz
tmp
@bac0n Но я до сих пор не знаю, почему в приведенном выше примере будут работать только bash -c "echo $S" или bash -c "echo '$S'" или bash -c "echo" $S "", получить те же результаты, что и echo $S = 2 , это был бы еще один мой вопрос, для чего именно нужны кавычки самого bash -c? Осуществляют ли они непосредственно команду внутри себя?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.