Какова цель специального параметра “_” (одинарное подчеркивание)?

Я пытаюсь понять как переменная среды _ может использоваться. Ниже пример использования его:

$ echo $_

$ echo $_
echo

$ ls non-existant-filename
ls: cannot access 'non-existant-filename': No such file or directory

$ echo $_
non-existant-filename
  • Сначала это ничего не возвращает
  • Второй это возвращает последнюю используемую команду
  • В последний раз это возвращает последний используемый параметр

Это могло бы быть удобной переменной для сценариев удара, но только если это - функция, полностью понят.


Некоторые полезные приложения _

Я нашел некоторое полезное применение _ как проиллюстрировано ниже:

$ ll ~/python/scroll1.py
-rwxrwxrwx 1 rick rick 2384 Dec 27 09:15 /home/rick/python/scroll1.py*

$ $_

$ cat $_
#!/usr/bin/env python
# -*- coding: utf-8 -*-
   (... SNIP ...)
  • Первое использование команды ll перечислять запись каталога сценария Python. Имя файла сохраняется к _ для будущего использования.
  • Вторая команда $_ запускает скрипт Python.
  • Третья команда cat $_ перечисляет содержание сценария Python.

Так $_ переменная/параметр может быть довольно удобной для сохранения большого ввода.

8
задан 28 December 2019 в 10:16

1 ответ

Это не "Переменная среды". Это - специальный параметр Bash, который обрабатывается особенно Bash.

От Руководство Новичков Bash , который объясняет это вполне прилично для Bash:

3.2.5. Специальные параметры

оболочка рассматривают несколько параметров особенно. На эти параметры можно только сослаться; присвоение на них не позволяется.

...

Это не "Переменная среды". Это - специальный параметр Bash, который обрабатывается особенно Bash.

От Руководство Новичков Bash , который объясняет это вполне прилично для Bash:

3.2.5. Специальные параметры

оболочка рассматривают несколько параметров особенно. На эти параметры можно только сослаться; присвоение на них не позволяется.

...

[111] : переменная подчеркивания установлена при запуске оболочки и содержит абсолютное имя файла оболочки или сценария, выполняемого, как передано в списке аргументов. Впоследствии, это расширяется до последнего аргумента предыдущей команде после расширения. Это также установлено на полный путь каждой команды, выполняемой и помещенной в среду, экспортируемую в ту команду. При проверке почты этот параметр содержит название почтового файла.

<глоток> (Формат кавычки, скорректированной для, Спрашивают Ubuntu, но содержит всю информацию)

Они также включают хороший пример того, как

Это не "Переменная среды". Это - специальный параметр Bash, который обрабатывается особенно Bash.

От Руководство Новичков Bash , который объясняет это вполне прилично для Bash:

3.2.5. Специальные параметры

оболочка рассматривают несколько параметров особенно. На эти параметры можно только сослаться; присвоение на них не позволяется.

...

[111] : переменная подчеркивания установлена при запуске оболочки и содержит абсолютное имя файла оболочки или сценария, выполняемого, как передано в списке аргументов. Впоследствии, это расширяется до последнего аргумента предыдущей команде после расширения. Это также установлено на полный путь каждой команды, выполняемой и помещенной в среду, экспортируемую в ту команду. При проверке почты этот параметр содержит название почтового файла.

<глоток> (Формат кавычки, скорректированной для, Спрашивают Ubuntu, но содержит всю информацию)

Они также включают хороший пример того, как [112] расширяется:

franky ~> grep dictionary /usr/share/dict/words
dictionary

franky ~> echo 

Это не "Переменная среды". Это - специальный параметр Bash, который обрабатывается особенно Bash.

От Руководство Новичков Bash , который объясняет это вполне прилично для Bash:

3.2.5. Специальные параметры

оболочка рассматривают несколько параметров особенно. На эти параметры можно только сослаться; присвоение на них не позволяется.

...

Это не "Переменная среды". Это - специальный параметр Bash, который обрабатывается особенно Bash.

От Руководство Новичков Bash , который объясняет это вполне прилично для Bash:

3.2.5. Специальные параметры

оболочка рассматривают несколько параметров особенно. На эти параметры можно только сослаться; присвоение на них не позволяется.

...

[111] : переменная подчеркивания установлена при запуске оболочки и содержит абсолютное имя файла оболочки или сценария, выполняемого, как передано в списке аргументов. Впоследствии, это расширяется до последнего аргумента предыдущей команде после расширения. Это также установлено на полный путь каждой команды, выполняемой и помещенной в среду, экспортируемую в ту команду. При проверке почты этот параметр содержит название почтового файла.

<глоток> (Формат кавычки, скорректированной для, Спрашивают Ubuntu, но содержит всю информацию)

Они также включают хороший пример того, как

Это не "Переменная среды". Это - специальный параметр Bash, который обрабатывается особенно Bash.

От Руководство Новичков Bash , который объясняет это вполне прилично для Bash:

3.2.5. Специальные параметры

оболочка рассматривают несколько параметров особенно. На эти параметры можно только сослаться; присвоение на них не позволяется.

...

[111] : переменная подчеркивания установлена при запуске оболочки и содержит абсолютное имя файла оболочки или сценария, выполняемого, как передано в списке аргументов. Впоследствии, это расширяется до последнего аргумента предыдущей команде после расширения. Это также установлено на полный путь каждой команды, выполняемой и помещенной в среду, экспортируемую в ту команду. При проверке почты этот параметр содержит название почтового файла.

<глоток> (Формат кавычки, скорректированной для, Спрашивают Ubuntu, но содержит всю информацию)

Они также включают хороший пример того, как [112] расширяется:

[110]
расширяется:

[110]
: переменная подчеркивания установлена при запуске оболочки и содержит абсолютное имя файла оболочки или сценария, выполняемого, как передано в списке аргументов. Впоследствии, это расширяется до последнего аргумента предыдущей команде после расширения. Это также установлено на полный путь каждой команды, выполняемой и помещенной в среду, экспортируемую в ту команду. При проверке почты этот параметр содержит название почтового файла.

<глоток> (Формат кавычки, скорректированной для, Спрашивают Ubuntu, но содержит всю информацию)

Они также включают хороший пример того, как

Это не "Переменная среды". Это - специальный параметр Bash, который обрабатывается особенно Bash.

От Руководство Новичков Bash , который объясняет это вполне прилично для Bash:

3.2.5. Специальные параметры

оболочка рассматривают несколько параметров особенно. На эти параметры можно только сослаться; присвоение на них не позволяется.

...

[111] : переменная подчеркивания установлена при запуске оболочки и содержит абсолютное имя файла оболочки или сценария, выполняемого, как передано в списке аргументов. Впоследствии, это расширяется до последнего аргумента предыдущей команде после расширения. Это также установлено на полный путь каждой команды, выполняемой и помещенной в среду, экспортируемую в ту команду. При проверке почты этот параметр содержит название почтового файла.

<глоток> (Формат кавычки, скорректированной для, Спрашивают Ubuntu, но содержит всю информацию)

Они также включают хороший пример того, как [112] расширяется:

[110]
расширяется:

[110]
/usr/share/dict/words
расширяется:

[110]
: переменная подчеркивания установлена при запуске оболочки и содержит абсолютное имя файла оболочки или сценария, выполняемого, как передано в списке аргументов. Впоследствии, это расширяется до последнего аргумента предыдущей команде после расширения. Это также установлено на полный путь каждой команды, выполняемой и помещенной в среду, экспортируемую в ту команду. При проверке почты этот параметр содержит название почтового файла.

<глоток> (Формат кавычки, скорректированной для, Спрашивают Ubuntu, но содержит всю информацию)

Они также включают хороший пример того, как

Это не "Переменная среды". Это - специальный параметр Bash, который обрабатывается особенно Bash.

От Руководство Новичков Bash , который объясняет это вполне прилично для Bash:

3.2.5. Специальные параметры

оболочка рассматривают несколько параметров особенно. На эти параметры можно только сослаться; присвоение на них не позволяется.

...

[111] : переменная подчеркивания установлена при запуске оболочки и содержит абсолютное имя файла оболочки или сценария, выполняемого, как передано в списке аргументов. Впоследствии, это расширяется до последнего аргумента предыдущей команде после расширения. Это также установлено на полный путь каждой команды, выполняемой и помещенной в среду, экспортируемую в ту команду. При проверке почты этот параметр содержит название почтового файла.

<глоток> (Формат кавычки, скорректированной для, Спрашивают Ubuntu, но содержит всю информацию)

Они также включают хороший пример того, как [112] расширяется:

[110]
расширяется:

[110]
10
ответ дан 28 December 2019 в 12:43

Другие вопросы по тегам:

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