bash- определение переменных с помощью VAR = $ {[число]: - default}

Отредактируйте /etc/firejail/firefox.profile и прокомментируйте или удалите строку noroot

1
13.04.2017, 15:36
2 ответа

Переменные, используемые в $ {1: -8} и $ {2: -4} , являются позиционные параметры $ 1 и $ 2 . Они содержат значения, переданные скрипту (или функции оболочки) в командной строке. Если они не установлены, указанные вами замены переменных будут использовать значения по умолчанию 8 и 4 (соответственно).

Сценарий или функция оболочки могут принимать любое (?) Количество аргументов, и их можно получить, используя $ 1 , $ 2 , ... в скрипте / функции. Чтобы получить значения позиционных параметров выше 9, нужно написать $ {10} , $ {11} и т. Д.

Это может быть использовано в оболочке script или в функции оболочки, которая принимает (как минимум) два аргумента командной строки, которым вы хотели бы предоставить значения по умолчанию, если они не указаны.

Другой полезной заменой переменной в этом случае является $ {параметр:? Word} , которая отображает слово как ошибку (и завершает сценарий), если параметр ] не задано:

$ cat script.sh
#!/bin/bash
var1="${1:?Must provide command line argument}"
printf 'I got "%s"\n' "$var1"

$ ./script.sh
script.sh: line 3: 1: Must provide command line argument

$ ./script.sh "Hello world"
I got "Hello world"
9
27.01.2020, 23:16

Относится к позиционным параметрам $ 1 ... $ n .

$ {1: -default} означает «если параметр 1 не задан или пуст, то использовать вместо него default ».

Предупреждение: не путайте $ {1: -2} с $ {1: -2} . В bash последний заменяется двумя последними символами $ 1 .

Пример:

$ set --
$ echo "${1:-2}"
2

$ set 345 678
$ echo "${1:-2}"
345

$ echo "${1: -2}"
45
4
27.01.2020, 23:16

Теги

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