Каково использование $ и в ударе?

"Форматирование" раздела сделано путем простого создания файловой системы на том устройстве. Например:

mkfs.ext4 /dev/mapper/VG00-LogVol

Но убедитесь, что Вы знаете то, что Вы делаете. Можно действительно уничтожить данные тот путь.

10
16.08.2014, 18:09
3 ответа

$& - это не одна токен/специальная переменная, это просто $ и &.

Команда эхо $& трактуется как эхо $&, что эхос буквально $ на заднем плане. С другой стороны,

$_ - это специальная переменная, которая расширяется до последнего аргумента последней выполненной команды.

18
27.01.2020, 20:00

Хотя аспект bash был рассмотрен, ваш вопрос заставляет меня думать, что вы столкнулись с этими переменными в коде perl.

$& и $_ являются специальными переменными в perl. И особенно они встречаются в коде perl, вызванном из кода оболочки.

$_ является переменной по умолчанию, над которой работают многие функции и операторы perl. Эта переменная также является переменной по умолчанию, устанавливаемой операторами ввода.

In:

perl -pe 'some-code' < some-input

Some-code выполняется для каждой строки какого-либо входа, при этом строка хранится в $_, а содержимое $_ выводится после выполнения некоторого кода.

Оператор s/regex/replacement/ по умолчанию работает на $_. Поэтому часто встречаются такие вещи, как:

perl -pe 's/foo/bar/'

, что сокращение от:

perl -pe '$_ =~ s/foo/bar/'

(выше, $_, так как shell является всего лишь частью дословного аргумента, переданного интерпретатору perl, это не оболочка, это не переменная. Этот дословный аргумент передаётся как выражение perl (-e) в perl, и именно для perl он интерпретируется как переменная).

$& - это еще одна специальная perl переменная, которая расширяется до того, что совпадает с последним совпадающим оператором (m/.../ , s/. .../.../...).

Например:

$ echo foo | perl -lne '
    print "The last character in $_ is $&" if m/.$/'
The last character in foo is o

Или:

$ echo foo bar | perl -pe 's/[aeiou]+/<$&>/g'
f<oo> b<a>r
5
27.01.2020, 20:00

Предоставление и означает, что вы собираетесь выполнить определенную команду в бэкэнде или как задание. Так что это то, что дает выход echo $&.

1
27.01.2020, 20:00

Теги

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