Проверьте эту ссылку: 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)
Очень близко к тому, что вы разместили, на самом деле:
FOO=${VARIABLE:-default} # If variable not set or null, use default.
Или, что назначит по умолчанию
ПЕРЕМЕННУЮ
, а также:
FOO=${VARIABLE:=default} # If variable not set or null, set it to default.
Даже в качестве значения по умолчанию вы можете использовать значение другой переменной
, имеющей файл 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
Для аргументов командной строки:
VARIABLE=${1:-DEFAULTVALUE}
, которая присваивает VARIABLE
значение 1-го аргумента, переданного в сценарий, или значение DEFAULTVALUE
, если такой аргумент не был передан.
см. здесь в разделе 3.5.3(расширение параметра оболочки)
, так что в вашем случае
${VARIABLE:-default}
Тогда есть способ выразить вашу конструкцию «если» более кратко:
FOO='default'
[ -n "${VARIABLE}" ] && FOO=${VARIABLE}