строковые замены: все случаи

Я полагаю, что это не. Этот бит только используется на исполняемых файлах. Это определяется в заголовках ядрa Linux как S_ISUID. Если Вы grep источники ядра для этой константы, Вы найдете, что она используется только в:

  • should_remove_suid функция, которая используется на операциях FS, которые должны удалить SUID/SGID, укусила,
  • prepare_binprm функция в fs/exec.c который используется, чтобы предварительное соединение исполняемого файла установило EUID на exec,
  • pid_revalidate функция в fs/proc/base.c который используется для заполнения procfs,
  • notify_change функция в fs/attr.c который используется при изменении атрибутов файла,
  • is_sxid функция в include/linux/fs.h который только используется XFS и GFS определенный код и notify_change функция,
  • в файловой системе определенный код (конечно),

Таким образом, мне кажется, что этот бит только используется (с точки зрения пространства пользователя) при выполнении файлов. По крайней мере, на Linux.

10
17.02.2014, 01:15
4 ответа

Это - модификатор расширения истории, поэтому добавьте g модификатор сразу прежде s.

echo ${1:gs/the/THE}

С другой стороны, используйте синтаксис расширения параметра, где двойная наклонная черта означает глобальную замену. В этом случае, часть после s// подстановочный шаблон, тогда как замена расширения истории берет литеральную строку.

echo ${1//the/THE}
20
27.01.2020, 19:59

Это должно сделать задание:

VARIABLE=thethethe
echo ${VARIABLE//the/THE}
THETHETHE
6
27.01.2020, 19:59

Thereyago, это должно было быть просто:

echo ${1//the/THE}

... двойная наклонная черта делает это, и Вы не можете дурачиться с ":s"

BTW, я был бы уверенный любить благодарить сайты 'StackExchange' за существующий. Из всего огромного количества мест можно было бы задать вопрос, они являются безусловно лучшими - один не, только почти всегда получает ответы, но и те ответы имеют неизменно высшее качество.

3
27.01.2020, 19:59

// отлично работает, если вы пытаетесь заменить определенное слово только заглавными буквами, оставив остальную часть нетронутой. Если вы пытаетесь преобразовать все в верхний регистр, вы можете использовать «:u» в переменной

SOME_ENV_VALUE='thethethe'
echo $SOME_ENV_VALUE:u // outputs: THETHETHE

Вы можете проверить, какие модификаторы у вас есть, в руководстве по расширению и замене zsh

man zshexpn
1
27.01.2020, 19:59

Теги

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