совместимость тире для избиения

Как первый плакат предлагают, можно записать сценарий на основе чего-то вроде этого на Linux:

stat -c '%i' fileA fileB fileC
7
05.09.2010, 05:36
2 ответа

Нет, не все сценарии, предназначенные для удара, работают с тире. Много 'bashism' не будут работать в тире, таком как C-стиль для циклов и операторов сравнения двойной скобки. Если у Вас есть ряд сценариев удара, которые Вы хотите использовать для тире, можно рассмотреть использование checkbashisms. Этот инструмент проверит Ваш сценарий на функции только для удара, которые, вероятно, не будут работать в тире.

12
27.01.2020, 20:16
  • 1
    Ooo. Удобная утилита –  Michael Mrozek♦ 05.09.2010, 05:36
  • 2
    , но сценарии с/bin/sh в хижина не предназначается для удара, они теперь? –   05.09.2010, 11:36
  • 3
    @hop: Они не могли бы быть предназначены для удара, но они все еще могут быть протестированы только на ударе. –  Maciej Piechotka 05.09.2010, 15:06
  • 4
    @MaciejPiechotka Любой сценарий, который использует строку хижины #!/bin/sh но не работает в /bin/sh (например, потому что это было записано для и только работает в bash) должен считаться поврежденным. Самый простой способ исправить такие сценарии состоит в том, чтобы заменить хижину #!/bin/bash (или #!/usr/bin/env bash). –  jw013 16.12.2011, 04:32
  • 5
    @MaciejPiechotka Вы упускаете мою суть. Я не предложил, чтобы все пошли и теперь и зафиксировать все ошибки в сценариях в их системе. Ни у кого нет времени для этого и если они уже работают, существует много более срочных вещей сделать. Я просто указываю на бесспорное то, что, если Вы пишете сценарий, который зависит от bash- только функции необходимо объявить это как таковой и не как sh. Иначе это просто не будет работать ни над какой системой, которая не имеет sh связанный с bash. Практическая вещь сделать состоит в том, чтобы записать и хижина Ваши сценарии правильно, таким образом, они на самом деле работают. –  jw013 18.12.2011, 05:34

Даже сценарии sh не совместимы с тире. Начальная загрузка Pkgsrc, пример паритета.

-1
27.01.2020, 20:16
  • 1
    Интересный. У меня создалось впечатление, что последними версиями тире является совместимый POSIX. Использование быстрой проверки dash -n не придумал ошибок, когда выполнено против начальной загрузки, но это является самым наивным из тестов. –  Steven D 05.09.2010, 09:54
  • 2
    @Steven IIRC существует одна переменная это dash не поддерживает. Возможно больше вещей, но список является очень маленьким. –  xenoterracide 05.09.2010, 17:24
  • 3
    является портом sh NetBSD к Debian, таким образом, кажется маловероятным, что он не работает на что-то, что было разработано для работы с sh NetBSD. Как ни странно, тот сценарий не является совместимым POSIX, но является Debian, совместимым, так как он использует local –  Stéphane Chazelas 21.12.2012, 12:28

Теги

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