Часовой пояс :Зачем кому-то устанавливать системный часовой пояс, отличный от реального?

Основываясь на ответе Адефона , я написал полное удаление -вместо sourceи ..

Это было непросто из-за встроенного поведения передачи $@, если аргументы не заданы.

Необходимые псевдонимы указаны в комментариях.

compile-source-file:

# This file needs to be `sourced` to ensure a drop-in behaviour for `source` or `.`
# The shell passess "$@" to source if no arguments are given after the file to be sourced.

# Works in bash.

# Required aliases are:
# alias source='builtin source compile-source-file source "$#" "$@"'
# alias     .='builtin.      compile-source-file.      "$#" "$@"'

# zsh: compile functions before sourcing
# This function expects to be called with:
# $1 builtin to use, either `.` or `source`.
# $2 file to source
# $3... arguments to pass to sourced file
function compile_then_source () {
  local method=$1 file=$2; shift 2; local args=("$@")

  # ${var@Q} gives value of var quoted in a format that can be reused as input
  [[ $BASH_VERSION ]] && { eval builtin "$method" "$file" "${args@Q}"; return $?; }

  if [[ ! $file.zwc -nt $file ]]; then
    # Use canonical pathname for zrecompile's happiness
    if [[ -r $file && -w ${file:h} ]]; then zcompile "${file:P}"; fi
  fi

  eval builtin "$method" "$file" "${(q)args[@]}"
}

function main () {
  local use_builtin=$1  # '.' or 'source'
  local num_args=$2     # Number of elements in calling shell's $@, which follow
  shift 2;
  local wrapper_args=("$@")
  wrapper_args=("${wrapper_args[@]:0:$num_args}")
  shift "$num_args"
  local file=$1; shift;

  # Now $@ is the arguments passed after the file to be soured
  if [[ $# -ge 1 ]]; then # arguments were passed
    use_args=("$@")
  else  # use $@ from the wrapper args
    use_args=("${wrapper_args[@]}")
  fi
  compile_then_source "$use_builtin" "$file" "${use_args[@]}"
}

main "$@"

unset -f main compile_then_source

-3
29.08.2020, 11:10
1 ответ

Всегда есть время UTC (, которое «должно быть» ), которое не имеет летнего времени. (И, вероятно, вам «должно» привыкнуть просто считать секунды, начиная с эпохи, чтобы не было високосных дней и високосных секунд, но большинству людей, вероятно, довольно сложно отличить вчерашнюю метку времени от одной из двух. несколько месяцев назад.)

Когда у вас есть местное время… человек во Франции, арендующий виртуальный сервер на Среднем Западе США, вероятно, по-прежнему предпочитал бы французские -метки времени, а не восемь часов (, а иногда и больше или меньше, в зависимости от летнего времени ).

Таким образом, в попытке привести это в связный ответ :самое позднее, когда вы работаете с несколькими системами, вы действительно хотите, чтобы все они имели один и тот же часовой пояс, потому что преобразование — это проблема, которая мешает. (От корреляции записей файла журнала до проверки того, нужно ли копировать этот файл конфигурации, да, это всего лишь мелочь, но это постоянно отвлекает ваше внимание. )Вероятно, это будет либо «ваш местный часовой пояс», если такая вещь существует, либо UTC.Может быть, есть варианты использования для того, чтобы быть рядом с линией даты TZ -, чтобы вы всегда были «раньше/позднее, чем где-либо еще на планете» (, как это происходит с международными крайними сроками подачи в академических кругах ). но я не вижу особой пользы в случайном выборе, скажем, Европа/Бюзинген или Арктика/Лонгйир.

3
18.03.2021, 23:09

Теги

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