Это зависит: если файлы являются объектом управления версиями, это могло бы быть довольно непопулярным загрязняющим историю решением. У мерзавца есть опция автоволшебно преобразовать окончания строки на контроле.
Если Вы не заботитесь и хотите быстро преобразовать, существуют программы как fromdos
/todos
и dos2unix
/unix2dos
это делает это для Вас. Можно использовать find
: find . -type f -name '*.php' -exec dos2unix '{}' +
.
Я могу воспроизвести это с намного меньшим примером. Я попробовал в ударе 4.1 от Debian, сжимают и удар 4.2.8 (9) скомпилированный из источника.
% bash --norc
bash-4.1$ echo $BASH_VERSION
4.1.5(1)-release
bash-4.1$ bind -x '"\037":echo foo;'
bash-4.1$ trap '$()' DEBUG
foo
bash-4.1$ echo bar
bash: bar: command not found
bash-4.1$
Я нажал Ctrl +_ (\037
) сразу после trap
команда возвращается. Команда в прерывании $()
пустая команда, производящая пустой вывод, таким образом нет. Замена команды, кажется, преступник, поскольку ничего неожиданного не происходит, если я заменяю его :
или пространством.
Я не вижу, как объяснить различие в поведении между $()
и пространство, таким образом, это похоже на ошибку. Поверхностный поиск в списке удара ошибки ничего не поднял.