Cannot compile device tree blob due to missing node/label

Во всех известных мне реализациях / версиях csh :

set condition = a_condition*

совпадает с:

set condition = (a_condition*)

То есть он создает массив, содержащий все имена файлов, полученные в результате расширения a_condition * glob. Я проверил оригинальную реализацию csh 1979 года в 2BSD на эмуляторе PDP11, и там было то же самое.

Описанное вами поведение выглядит так, как если бы эта строка была интерпретирована как

set condition = a_condition1 a_condition2 a_condition3...

, то есть определение условия как переменной со значением a_condition1 и переменной с именем a_condition2 , затем - a_condition3 ... Я не знаю ни одной реализации csh , которая ведет себя подобным образом, и считаю маловероятным, что такая реализация существует, учитывая, что исходный реализация этого не сделала, но в случае, если это так, вы можете попробовать сделать:

set condition = (a_condition*)

, чтобы увидеть, имеет ли это значение. Это также было бы более информативным.

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

set condition = (a_condition*)
foreach i ($condition:q)
  echo $i:q
end

И если вы хотите, чтобы условие выполнялось содержат строку a_condition * и эту строку, которая будет расширена как глобус во время цикла, это будет:

set condition = 'a_condition*'
foreach i ($condition)
  echo $i:q
end
0
29.06.2015, 16:42
0 ответов

Теги

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