Один из вариантов — заставить себя использовать функцию вместо echo
, например:
obfuprint() {
if [ "${#1}" -ge 8 ]
then
printf '%s\n' "${1/????????/********}"
else
printf '%s\n' "${1//?/*}"
fi
}
Затем вы можете вызвать obfuprint 'secretvalue'
и получить********lue
(с завершающим символом новой строки ). Функция использует расширение параметра для поиска первых восьми символов переданного значения -и заменяет их восемью звездочками. Если входящее значение короче восьми символов, все они заменяются звездочками. Спасибо ilkkachu за указание на мое первоначальное предположение о вводе восьми -или -дополнительных символов!
Вдохновленный ответом ilkkachu о гибком маскировании , я подумал, что было бы интересно добавить вариант, который случайным образом маскирует некоторый процент строки:
obfuprintperc () {
local perc=75 ## percent to obfuscate
local i=0
for((i=0; i < ${#1}; i++))
do
if [ $(( $RANDOM % 100 )) -lt "$perc" ]
then
printf '%s' '*'
else
printf '%s' "${1:i:1}"
fi
done
echo
}
Это зависит от специальной переменной bash $RANDOM
; он просто перебирает каждый символ ввода и решает, следует ли замаскировать этот символ или напечатать его. Пример вывода:
$ obfuprintperc 0123456789
0*****6*8*
$ obfuprintperc 0123456789
012***678*
$ obfuprintperc 0123456789
**********
$ obfuprintperc 0123456789
*****56***
$ obfuprintperc 0123456789
0*******8*
В установленном пакете snapd закончились данные даже по стандартам Ubuntu 14.04. rmadison опрашивает службы Madison, размещенные в Debian и Ubuntu, чтобы определить доступность пакетов. В этом случае мы будем использовать rmadison для поиска пакета snapd следующим образом:
sudo apt install devscripts
rmadison -u ubuntu snapd
rmadison -u debian snapd
Затем посетите Поиск пакетов Ubuntu или Поиск пакетов Debian и найдите версию snapd >= 2.42. Snap Store отлично работает, даже если snap не установлен, поэтому вам нужно только обновить пакет snapd . SNAP — это программа для поиска генов общего назначения, подходящая как для эукариотических, так и для прокариотических геномов, поэтому вы можете безопасно удалить ее с помощью sudo apt remove snap
, если она вам не нужна.
Команда, устанавливающая пакет snapd.deb, имеет следующую форму. Откройте терминал, измените каталоги с помощью cd
на каталог, содержащий загруженный файл snapd.deb, и введите:
sudo apt install./snapd_2.42.1+18.04_amd64.deb # snapd package from bionic-updates repository