Назначение значений по умолчанию для переменных оболочки с помощью одной команды в bash

Проверьте эту ссылку: http://www.codeproject.com/KB/applications/xcmyk.aspx . Он дает эту формулу.

Black   = minimum(1-Red,1-Green,1-Blue)
Cyan    = (1-Red-Black)/(1-Black)
Magenta = (1-Green-Black)/(1-Black)
Yellow  = (1-Blue-Black)/(1-Black) 

555
задан llrs 3 November 2015 в 10:13
поделиться

5 ответов

Очень близко к тому, что вы разместили, на самом деле:

FOO=${VARIABLE:-default}  # If variable not set or null, use default.

Или, что назначит по умолчанию ПЕРЕМЕННУЮ , а также:

FOO=${VARIABLE:=default}  # If variable not set or null, set it to default.
1090
ответ дан 22 November 2019 в 21:58
поделиться

Даже в качестве значения по умолчанию вы можете использовать значение другой переменной

, имеющей файл defvalue.sh

#!/bin/bash
variable1=$1
variable2=${2:-$variable1}

echo $variable1
echo $variable2

, запустить ./defvalue.sh first-value second-value output

first-value
second-value

и запустите ./defvalue.sh first-value вывод

first-value
first-value
30
ответ дан montells 3 November 2015 в 10:13
поделиться

Для аргументов командной строки:

VARIABLE=${1:-DEFAULTVALUE}    

, которая присваивает VARIABLE значение 1-го аргумента, переданного в сценарий, или значение DEFAULTVALUE, если такой аргумент не был передан.

250
ответ дан 22 November 2019 в 21:58
поделиться

см. здесь в разделе 3.5.3(расширение параметра оболочки)

, так что в вашем случае

${VARIABLE:-default}
26
ответ дан 22 November 2019 в 21:58
поделиться

Тогда есть способ выразить вашу конструкцию «если» более кратко:

FOO='default'
[ -n "${VARIABLE}" ] && FOO=${VARIABLE}
15
ответ дан 22 November 2019 в 21:58
поделиться