← All posts tagged bashism

andrej

Нешта стала цікава: што адваліцца (калі адваліцца) калі паспрабаваць змяніць шэл у відэаскрыпце з bash на dash. Такі адвалілася, то бок я ужываю башызмы (zip file!). Але, блін, вось такой падлянкі я не чакаў:

$ ./video_fw.sh || head -1 video_fw.sh
./video_fw.sh: 1: ./video_fw.sh: Syntax error: redirection unexpected
#!/bin/dash

Вось што яму не падабаецца? Варыянт запхнуць прабел пасля шабанга не дапамагае: bash працуе і з ім, а dash усё адно выдае тую ж памылку.

Спроба нагугліць вывела на сайт, дзе (2013 год) абвяшчаецца башызмам нават тое, што ў 2008 патрапіла-такі ў POSIX.

З дапамогай Гугла, кувалды і курвамацеры высветліў, што сварыцца ён на радок:
md5=`md5sum<<<$dtime`

Чаму ён піша лічбу 1 ў памылцы я так і не зразумеў, гэта 33 радок і далёка не першы пасля каментаў (не кажучы пра тое, што выконвацца ён не павінны быў).

Калі закаменціў гэта, выйшла памылка:
./video_fw.sh: 26: [: unexpected operator

Не сказаць, што я без гэтага есці не змагу, але калі нехта зможа падказаць — буду вельмі ўдзячны.

Скрыпт ляжыць тут: github.com