Как изменить интерпретирование переменной в 'zsh'?

Вы правы, стабильный Debian не имеет прокручивающейся модели выпуска, поскольку, после того как стабильная версия сделана, только исправления ошибок и исправления безопасности сделаны. Как Вы сказали, существуют дистрибутивы, положился на тестирование и нестабильные ответвления (см. также здесь). Что это, Вы ожидаете от прокручивающегося распределения выпуска на основе конюшни, которая не удовлетворена одним на основе тестирования?

Я предполагаю то, что Вы ищете, CUT Debian, предложение создать "Постоянно Применимое Тестирование" выпуск. Я не следовал за этим тесно, таким образом, я понятия не имею, подтверждается ли это предложение или в пределах досягаемости.

1
24.10.2011, 11:52
2 ответа

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

a='hello *.txt'
echo $a

затем Вы видите hello *.txt, в отличие от других оболочек, где Вы будете видеть что-то как hello bar.txt foo.txt.

Можно включить разделение слова для одного расширения с $=TEMPP. Можно включить разделение слова для всех расширений с setopt sh_word_split или emulate sh.

Необходимо засунуть эти команды в make-файл и позволить реальному стилю Границы окружить (независимо от того, что установлено как /bin/sh) выполните их. Сохраните zsh для интерактивного использования и Ваших собственных сценариев.

1
27.01.2020, 23:29
  • 1
    Спасибо, Ваш ответ, решают мой zsh проблема, и да, в make-файле нет никакого, что проблема, в начале, я использую make-файл для тестирования их, управляет, это работает хорошо, но по некоторым причинам я должен работать, они управляют в командной строке, затем я выполняю его в zsh и найденный это работает, отличаются от make-файла. Спасибо за Ваш ответ и совет. –  wind 25.10.2011, 05:21

Я полагаю, что Вы пытаетесь управлять ли пробел в "$TEMPP" интерпретируется или нет. (Отметьте, это не проблема GCC, именно Ваша оболочка анализирует командную строку.)

Вот что bash делает:

$ F="foo bar baz"
$ for f in $F; do echo $f; done
foo
bar
baz

И вот что zsh делает:

$ F="foo bar baz"
$ for f in $F; do echo $f; done
foo bar baz

Необходимо добраться zsh интерпретировать пробел. Может быть корректный способ сделать это в zsh (я не знаю, но если Вы, перезаголовок и отмечает Ваш вопрос, Вы могли бы получить более полезные ответы). Это должно работать вокруг проблемы, но является чем-то вроде тяжелого молотка для этой проблемы:

eval gcc -M $TEMPP somefile.c
2
27.01.2020, 23:29
  • 1
    Да, Вы правы, сначала я не знаю, что проблема из-за zsh, таким образом, заголовок - это, и затем я ищу этому работу хорошо в bash и я делаю дополнения в конце, но я не рассматривал о заголовке. И спасибо за Вас решение о eval, это работает. –  wind 24.10.2011, 11:48

Теги

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