Неправильная строка в исходном списке /etc/apt/sources.list (dist parse), не позволяйте мне использовать диспетчер обновлений? [Дубликат]

Предоставление функций в качестве параметров не предназначено и скоро станет сложным или уродливым. Единственный способ, который я знаю, - через функцию eval. Подход Nykakins не передаёт функцию, а значение, как вы можете видеть в этом примере сравнения:

#!/bin/bash
#
# Test providing a function as parameter
#
function f {
  param=$1
  echo "-----------------------"
  date +%T_%N
  sleep 0.3
  echo $param
  date +%T_%N
}

function e {
  param="$1"
  echo "-----------------------"
  date +%T_%N
  sleep 0.3
  eval $param
  date +%T_%N
}

f $(date +%T_%N) 
e "date +%T_%N"

Первый стиль оценивает функцию «дата» перед передачей результата в клиентскую функцию f , как вы можете видеть, потому что второй раз до третьего:

-----------------------
14:00:12_983387321
14:00:12_980980238
14:00:13_287779378
-----------------------
14:00:13_290126185
14:00:13_594301594
14:00:13_596408013

Второй блок показывает, что переданная функция оценивается между двумя вызовами даты в электронной функции.

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

1
задан 31 January 2015 в 22:42

0 ответов

Другие вопросы по тегам:

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