Я полагаю, что это не. Этот бит только используется на исполняемых файлах. Это определяется в заголовках ядр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.
Это - модификатор расширения истории, поэтому добавьте g
модификатор сразу прежде s
.
echo ${1:gs/the/THE}
С другой стороны, используйте синтаксис расширения параметра, где двойная наклонная черта означает глобальную замену. В этом случае, часть после s//
подстановочный шаблон, тогда как замена расширения истории берет литеральную строку.
echo ${1//the/THE}
Это должно сделать задание:
VARIABLE=thethethe
echo ${VARIABLE//the/THE}
THETHETHE
Thereyago, это должно было быть просто:
echo ${1//the/THE}
... двойная наклонная черта делает это, и Вы не можете дурачиться с ":s"
BTW, я был бы уверенный любить благодарить сайты 'StackExchange' за существующий. Из всего огромного количества мест можно было бы задать вопрос, они являются безусловно лучшими - один не, только почти всегда получает ответы, но и те ответы имеют неизменно высшее качество.
// отлично работает, если вы пытаетесь заменить определенное слово только заглавными буквами, оставив остальную часть нетронутой. Если вы пытаетесь преобразовать все в верхний регистр, вы можете использовать «:u» в переменной
SOME_ENV_VALUE='thethethe'
echo $SOME_ENV_VALUE:u // outputs: THETHETHE
Вы можете проверить, какие модификаторы у вас есть, в руководстве по расширению и замене zsh
man zshexpn