Все сеты а линукс

Команда Set Linux

bestprogrammer.ru

Команда Set Linux

Изучение

Команда Linux set — это встроенная команда оболочки, которая позволяет отображать или устанавливать переменные оболочки и среды. В этом руководстве мы рассмотрим команду set и продемонстрируем различные способы использования утилиты командной строки.

Базовый синтаксис

Команда set имеет следующий синтаксис:

Параметры команды

Существует множество опций, которые можно использовать с командой set. Давайте рассмотрим некоторые из них:

  • -a: опция -a устанавливает все созданные или измененные переменные или функции для экспорта.
  • -b: опция -b немедленно предупреждает пользователя о завершении фоновых заданий.
  • -e:параметр -e указывает оболочке выйти, если команда дает ненулевой статус выхода. Проще говоря, оболочка завершает работу при сбое команды.
  • -f:опция -f отключает создание имен файлов.
  • -h:опция -h включена по умолчанию. Он находит и запоминает функцию, ожидающую выполнения.
  • -n:опция -n только читает команды, но не выполняет их.
  • -t:опция -t завершает работу после чтения и выполнения одной команды.
  • -u:опция -u обрабатывает неустановленные или неопределенные переменные, за исключением специальных параметров, таких как подстановочные знаки (*) или «@», как ошибки во время раскрытия параметра.
  • -v:опция -v распечатывает строки ввода оболочки по мере их чтения.
  • -x:опция -x печатает аргументы команды во время выполнения

Выходные значения

Ниже приведены значения выхода оболочки, связанные с командой set:

0: Команда выполнена успешно.

  1. Команда не выполнена из-за неверного аргумента команды
  2. Ошибка команды из-за отсутствия ожидаемого аргумента

Установить команду без каких-либо параметров

Без аргументов команда set выводит список всех переменных оболочки, включая их значения.

Без аргументов команда set выводит список всех переменных оболочки

Установите позиционные параметры с помощью команды Set

Команду Linux set можно использовать для присвоения значений позиционным параметрам. Позиционный параметр — это переменная в программе оболочки, и на его значение ссылаются как на $ , где N — цифра, обозначающая позицию параметра.

Читайте также:  Linux dns server config

Значение $ 1 — это первый позиционный параметр после имени файла или команды. Значение $ 2 — это второй параметр и так далее.

Предположим, мы выполняем команду, показанную ниже:

Здесь красный цвет соответствует позиционному параметру $ 1, синий соответствует параметру $ 2 и, наконец, зеленый цвет соответствует параметру $ 3.

Чтобы перечислить все параметры в порядке $ 1 $ 2 $ 3, выполните приведенную ниже команду echo:

Чтобы перечислить первый параметр, выполните:

Чтобы вывести второй параметр, запустите:

Чтобы вывести второй параметр, запустите

Используйте команду Set, чтобы сбросить все параметры положения

Чтобы отключить позиционные параметры, запустите команду set с двойным дефисом, как показано.

Еще раз, если вы попытаетесь перечислить позиционные параметры, вы получите пустой результат, подразумевая, что они не были установлены.

Еще раз, если вы попытаетесь перечислить позиционные параметры

Игнорировать несвязанную переменную

По умолчанию сценарий оболочки игнорирует неопределенную переменную. В приведенном ниже скрипте myscript.sh переменная $ foo еще не определена и, следовательно, не существует.

По умолчанию сценарий оболочки игнорирует неопределенную переменную

Когда скрипт запускается, он возвращает пустую строку для строки, содержащей несуществующую переменную, и переходит к выполнению следующей строки:

Эта аномалия нежелательна, и разработчики хотели бы получать уведомления в случае неопределенных переменных. Директива set -u в начале скрипта выводит ошибку в оболочке, если скрипт запускает неопределенную переменную.

Когда скрипт запускается еще раз, отображается ошибка о несвязанной переменной.

Отображение ошибки, если команда не существует

Обычно, если команда вызывает ошибку и не может быть выполнена, оболочка bash продолжит выполнение оставшихся команд. Возьмем, к примеру, сценарий оболочки ниже:

Команды foobar не существует, и при выполнении сценария в оболочке bash должна отображаться ошибка, чтобы показать, что сценарий вызывает проблему. Однако этого не происходит, и оболочка выполняет следующую строку, как показано:

Как и в предыдущем примере, это не очень хорошая практика при написании сценариев оболочки, особенно для обеспечения безопасности и отладки. В идеале сценарий должен останавливаться при обнаружении ошибки. Для решения этого сценария определите директиву set -e в начале сценария, как показано.

Когда вы снова попытаетесь запустить скрипт, вы столкнетесь с ошибкой, как показано ниже:

Читайте также:  Astra linux смена пароля root

Отображение ошибки в командах по конвейеру

Директива set -e не работает при работе с конвейерными командами. Рассмотрим сценарий ниже:

Когда вы запускаете сценарий, он возвращает ошибку, но продолжает выполнять следующую команду:

Чтобы преодолеть это препятствие, передайте директиву set -eo pipefail, как показано:

На этот раз сценарий завершается и не выполняет следующую строку.

Определите параметры Allexport и уведомления

Чтобы установить параметры allexport и notify, выполните команду:

Заключение

Это было несколько примеров того, как вы можете использовать команду set в сценариях оболочки. Как уже отмечалось, команда set может быть удобным инструментом для установки позиционных параметров и отладки сценариев оболочки.

Источник

Linux set Command Summary with Examples

face pic

by Paul Alan Davis, CFA

In this tutorial on Linux set, 48 of 100, below find a 3-4 minute introductory video a text-based tutorial and all of the code examples from the video.

An ad-free and cookie-free website.

Examples of the Linux set Command

Video Tutorial

Videos can also be accessed from the Linux Essentials Playlist on YouTube.

Linux set Command Summary with Examples (3:34)

Video Script

The Command and Why You Need It

Our forty-eighth word, or command to memorize is set from our category System.

set allows you to display or set shell and environment variables.

Common Linux set Options

Recall from the printenv and export videos, we saw environment variables? Well, set tacks on variables unique to a shell program, like bash .

Before we start, it helps to think of commands as mini programs and most follow this structure: command -option(s) argument(s) .

This fairly advanced set command has over 20 options which we won’t cover here and the argument is the variable and value.

Unlike most commands, help is not available with double-dash —help because as a shell built-in, documentation sits in the bash manual page ( man bash ).

So why is set an important command? Well, in some situations you may need to set and unset shell variables and functions. And now you know how to do that.

Читайте также:  Linux cat file txt

Demonstration

Okay, the best way to embed this in your memory is by typing in your own terminal window.

Find this on your Mac using a program called Terminal. On Linux use Terminal or Konsole, and currently Microsoft is adding this functionality to Windows.

Here we go. So I mainly wanted to introduce you to set as a way to understand that there are environment variables, shell variables and a new concept called functions. So instead of our regular demonstration, this will be homework. So follow these steps.

First, enter printenv optionless, like you did in video 46. Then type set optionless and compare.

Output from set will be long, so use Shift-PgUp and Shift-PgDn right here in the terminal, or write it to a file using the redirection symbol > and then just take 5 minutes to zip through it with less .

And last, functions on the output can be identified by curly braces < >and if then .

A Final Tip

Okay now you know how to use set . And you know the syntax for commands, options and arguments.

One last tip about the set command. So here I simply wanted you to see what’s passed around behind the innocent-looking terminal window. Don’t worry, the next few videos will be easier.

Okay, thanks for visiting today. I hope this was a helpful introduction to the set command.

Learn More About The Series

For an overview of the 100 videos, the 8 quizzes, a cheat sheet, the categories and a Q&A section, visit:

What’s Next?

Not only will you find homework on our YouTube Channel, but also quizzes! Subscribe and follow to be a part of our smart group.

  • For the Outline to all 100 tutorials, click Outline
  • To go back to the export command, hit Back.
  • If you appreciate learning without invasive advertising, click Tip.
  • To get a little more practice with the unset command, click Next.

Источник

Оцените статью
Adblock
detector