Аргументы в Bash

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

./devdojo.com your_argument

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

Если мы передадим второй аргумент, он будет доступен как $2и так далее.

Давайте создадим короткий скрипт, называемый arguments.shв качестве примера:

#!/bin/bash

echo "Argument one is $1"
echo "Argument two is $2"
echo "Argument three is $3"

Сохраните файл и сделайте его исполняемым:

chmod +x arguments.sh

Затем запустите файл и передайте 3 аргумента:

./arguments.sh dog cat bird

Результат, который вы получите, будет:

Argument one is dog
Argument two is cat
Argument three is bird

Чтобы ссылаться на все аргументы, вы можете использовать $@:

#!/bin/bash

echo "All arguments: $@"

Если вы запустите скрипт еще раз:

./arguments.sh dog cat bird

Вы получите следующий результат:

All arguments: dog cat bird

Еще одна вещь, о которой вам нужно помнить, это то, что $0используется для ссылки на сам скрипт.

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

Например, давайте создадим скрипт, который распечатывает имя файла и после этого удаляет файл:

#!/bin/bash

echo "The name of the file is: $0 and it is going to be self-deleted."

rm -f $0

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

Last updated