Что делает оператор '#' перед переменной в расширении переменной?

Существует опция для youtube-dl, чтобы сделать то, что вы ищете, это --match-title REGEX operand

10
27.02.2017, 09:06
2 ответа

Оператор # возвращает длину переменной. В вашем случае длина переменной x равна шести.

Для получения дополнительной информации см. Замена параметра .

14
27.01.2020, 19:59

Это расширение параметра, которое возвращает длину параметра, или количество элементов в массиве, или количество позиционных параметров.

Прочтите, пожалуйста, руководство к вашей оболочке. Следующее взято из руководства bash :

$ {# параметр}

Длина в символах значения параметра заменяется на . Если параметр равен * или @ , подставляемое значение представляет собой количество позиционных параметров. Если параметр представляет собой имя массива с нижним индексом * или @ , заменяемое значение представляет собой количество элементов в множество. Если параметр является именем индексированного массива с нижним индексом отрицательного числа , это число интерпретируется как относительное к , большему, чем максимальный индекс параметра, поэтому отрицательные индексы отсчитывают от конца массива, а индекс -1 ссылается на последний элемент.


А также , пожалуйста, не делайте привычки работать в интерактивной корневой оболочке. Это в лучшем случае опасно и безрассудно. Используйте sudo экономно и только в ситуациях, когда требуются повышенные привилегии. Поиграться с bash - это то, что вы определенно можете сделать как обычный пользователь без полномочий root.

В последние несколько лет я использовал интерактивную корневую оболочку только для ручного добавления одного пользователя для себя.Это 2-минутная работа, и затем мне никогда никогда не нужно снова видеть приглашение # на этой машине.

29
27.01.2020, 19:59

Теги

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