Каково использование $ & in bash?

Я изучал специальные параметры в bash. Мне любопытно узнать, что такое $& и как оно отличается от $_ .

Я вижу следующий вывод при запуске команд, но не смог найти значение.

 k@Linux:~$ echo $& [1] 12397 $ k@Linux:~$ echo $n [1]+ Done echo $ k@Linux:~$ 

  • Работа rm / ls с
  • Как я могу связываться с сокером Unix сокета через оболочку на Debian Squeeze?
  • Что такое расщепление слов? Почему это важно в программировании оболочки?
  • Как отформатировать команду curl для специальной задачи?
  • Я не понимаю, почему он говорит, что «Ожидается целочисленное выражение»
  • Ищете способ превратить несколько команд с одним и тем же параметром в один лайнер
  • Могу ли я имитировать утилиту tee, используя дополнительные файловые дескрипторы?
  • как фильтровать по звездочке или аналогичному выражению rsync в zsh
  • 3 Solutions collect form web for “Каково использование $ & in bash?”

    $& is not a single token / special variable, это просто $ и & .

    Команда echo $& обрабатывается как echo $ & , которая возвращает букву $ в фоновом режиме.

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

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

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

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

    В:

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

    Некоторый код запускается для каждой строки некоторого ввода, строка, хранящаяся в $_ , а содержимое $_ печатается после запуска некоторого кода.

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

     perl -pe 's/foo/bar/' 

    Короткая для:

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

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

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

    Например:

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

    Или:

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

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

    Interesting Posts

    Как загрузить последнюю версию cmake с помощью tar xzf?

    Как изменить звуковую карту по умолчанию в Debian на внешний USB?

    После обновления IPv6-адрес изменился. Зачем? и как я могу ожесточить мой .htaccess против этого?

    Что вы фильтруете / исключаете список при выполнении резервного копирования с помощью rsync?

    Как запустить java-приложение после перезагрузки компьютера?

    Маршрутизировать весь HTTP-трафик через polipo

    Моя работа cron не отправляет электронное письмо с любым выходом, я вижу только пустое письмо

    Как напрямую подключить sdb или использовать разделы LVM на sda?

    sed one-liner для удаления словесных пространств

    Справка по скрипту над списком файлов

    Отсутствует / dev / ram0 / dev / ram1 и / proc / kcore

    Linux: как переименовать диски cdrom

    Шлюз не меняется после перезапуска

    Основной объект S3, но подпись не соответствует

    Программа классной книги, которая работает на gentoo

    Linux и Unix - лучшая ОС в мире.