Сценарий Bash поврежден

Я рекомендую взглянуть на этот вопрос . Выбранный ответ очень тщательный. Чтобы переменная сохранялась, вам нужно использовать функцию export, поскольку ваше текущее замедление ограничено контекстом скрипта.

Изменить install.shна:

export FOO=BAR

Тогда вместо ./install.shможно попробовать. install.sh

1
26.02.2021, 21:09
2 ответа

В качестве примера возьмем следующую строку:

00000010  72 0a 65 63 68 6f c2 a0  2d 65 c2 a0 22 23 23 23  |r.echo..-e.."###|
What are these characters -- ^  ^        ^   ^

a0 — это пробел 20 с установленным старшим битом ?? C2 равен 42 с установленным старшим битом?

Избавься от этих странностей. Используйте ви

Обновление 1 :для создания нового файла

Выберите (используйте мышь ), а затем скопируйте с помощью CTRL -C (или на Mac cmd -C )исходный скрипт из вашего вопроса на этой веб-странице и создайте новый файл:

$ cat > fixscript.sh

Теперь вставьте содержимое в catи используйте CTRL -D, чтобы завершить ввод. Вот вывод из hd fixedscript.shтой же строки выше.

00000010  72 0a 65 63 68 6f 20 2d  65 20 22 23 23 23 20 43  |r.echo -e "### C|
2
18.03.2021, 22:28

Стандартным ответом на редактирование двоичных файлов в vim является использование xxdдля преобразования файла в шестнадцатеричный формат, внесение изменений, а затем использование xxd -rдля преобразования его обратно в двоичный формат.

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

perl -p0e 's/\x{c2}\x{a0}/ /g' input_file > output_file

Существует также флаг -iдля редактирования места -, когда вы уверены.

1
18.03.2021, 22:28

Теги

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