Bash: это поддерживает условные переменные как var = “тест”? “1”: “2”

Когда у Вас есть потребительский сценарий (т.е. кто-то, машина которого Вы не получаете физический доступ к), единственные вещи, которые "очень регистрируются", перекрашивают функции и почти что-либо позвонившее ими (который должен быть почти ничем). Или другие функции, которые вызваны 100's времен в секунду во время операции (запуск программы в порядке, тем не менее, для имения 100's вызовов, чтобы зарегистрировать стандартные программы, потому что по моему опыту, это - то, где большинство проблем происходит).

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

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

8
задан nicholas.alipaz 25 September 2009 в 04:03
поделиться

3 ответа

Да, это так:

var=${var:-10}

Даже с другими переменными:

unset var
export def=99
echo ${var:-${def}} # gives '99'
export var=7
echo ${var:-${def}} # gives '7'
12
ответ дан 5 December 2019 в 08:24
поделиться

Да!

На странице руководства:

${parameter:-word}
      Use  Default  Values.  If parameter is unset or null, the expansion of word
      is substituted.  Otherwise, the value of parameter is substituted.
${parameter:=word}
      Assign Default Values.  If parameter is unset or null, the expansion of word
      is assigned to  parameter. The  value  of  parameter is then substituted.
      Positional parameters and special parameters may not be assigned to in this way.
${parameter:?word}
      Display Error if Null or Unset.  If parameter is null or unset, the expansion of word (or a message  to
      that effect if word is not present) is written to the standard error and the shell, if it is not inter‐
      active, exits.  Otherwise, the value of parameter is substituted.
${parameter:+word}
      Use Alternate Value.  If parameter is null or unset, nothing is substituted, otherwise the expansion of
      word is substituted.
6
ответ дан 5 December 2019 в 08:24
поделиться
$ default=10
$ var=${var:-$default}
$ echo $var
10
$ var=9
$ var=${var:-$default}
$ echo $var
9
2
ответ дан 5 December 2019 в 08:24
поделиться
Другие вопросы по тегам:

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