Я рекомендую взглянуть на этот вопрос . Выбранный ответ очень тщательный. Чтобы переменная сохранялась, вам нужно использовать функцию export
, поскольку ваше текущее замедление ограничено контекстом скрипта.
Изменить install.sh
на:
export FOO=BAR
Тогда вместо ./install.sh
можно попробовать. install.sh
В качестве примера возьмем следующую строку:
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|
Стандартным ответом на редактирование двоичных файлов в vim является использование xxd
для преобразования файла в шестнадцатеричный формат, внесение изменений, а затем использование xxd -r
для преобразования его обратно в двоичный формат.
Однако для этого я, вероятно, использовал бы perl.
perl -p0e 's/\x{c2}\x{a0}/ /g' input_file > output_file
Существует также флаг -i
для редактирования места -, когда вы уверены.