ИМХО, из соображений безопасности лучше не хранить учетные данные в истории bash.
Мы можем использовать команду chpasswd
с использованием файла вместо передачи из командной строки. Выберите свой любимый текстовый редактор для редактирования файла.
vim passwd
Затем введите user:password
, сохраните и выйдите с помощью :wq
cat passwd | sudo chpasswd
Затем следует удалить файл:
rm passwd
Таким образом, вам не нужно будет использовать терминал для передачи учетных данных.
Судя по вашему вопросу, похоже, вас не так заботит то, что символ EOL (s )на самом деле представляет собой , просто сколько байтов или символов ЭОЛ принимает.
Как насчет измерения?
EOL_BYTES="$(echo | wc --bytes)"
или
EOL_CHARS="$(echo | wc --chars)"
Запустите один из них в начале сценария, а затем используйте это значение в своих вычислениях.